You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/09/15 18:31:11 UTC

[1/5] isis-site git commit: ISIS-1712: adds hint-n-tip for instantiating view models

Repository: isis-site
Updated Branches:
  refs/heads/asf-site 3694df12e -> 7cfdf3b3d


http://git-wip-us.apache.org/repos/asf/isis-site/blob/5e752223/content/guides/ugbtb/ugbtb.pdf
----------------------------------------------------------------------
diff --git a/content/guides/ugbtb/ugbtb.pdf b/content/guides/ugbtb/ugbtb.pdf
index 118ab00..77029c2 100644
--- a/content/guides/ugbtb/ugbtb.pdf
+++ b/content/guides/ugbtb/ugbtb.pdf
@@ -4,16 +4,16 @@
 << /Title (Beyond the Basics)
 /Creator (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
 /Producer (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
-/CreationDate (D:20170914184931+01'00')
-/ModDate (D:20170914184931+01'00')
+/CreationDate (D:20170915174239+01'00')
+/ModDate (D:20170915174239+01'00')
 >>
 endobj
 2 0 obj
 << /Type /Catalog
 /Pages 3 0 R
 /Names 16 0 R
-/Outlines 555 0 R
-/PageLabels 600 0 R
+/Outlines 570 0 R
+/PageLabels 616 0 R
 /PageMode /UseOutlines
 /OpenAction [7 0 R /FitH 842.89]
 /ViewerPreferences << /DisplayDocTitle true
@@ -22,8 +22,8 @@ endobj
 endobj
 3 0 obj
 << /Type /Pages
-/Count 70
-/Kids [7 0 R 10 0 R 12 0 R 14 0 R 39 0 R 56 0 R 63 0 R 71 0 R 74 0 R 81 0 R 84 0 R 88 0 R 90 0 R 92 0 R 97 0 R 101 0 R 109 0 R 118 0 R 122 0 R 133 0 R 142 0 R 154 0 R 156 0 R 169 0 R 177 0 R 185 0 R 191 0 R 197 0 R 204 0 R 214 0 R 219 0 R 226 0 R 234 0 R 236 0 R 243 0 R 247 0 R 251 0 R 266 0 R 268 0 R 279 0 R 283 0 R 297 0 R 307 0 R 310 0 R 313 0 R 319 0 R 322 0 R 332 0 R 341 0 R 343 0 R 346 0 R 357 0 R 367 0 R 374 0 R 381 0 R 391 0 R 398 0 R 405 0 R 417 0 R 424 0 R 431 0 R 434 0 R 440 0 R 444 0 R 448 0 R 450 0 R 454 0 R 458 0 R 460 0 R 464 0 R]
+/Count 73
+/Kids [7 0 R 10 0 R 12 0 R 14 0 R 39 0 R 56 0 R 63 0 R 71 0 R 74 0 R 81 0 R 84 0 R 88 0 R 90 0 R 92 0 R 97 0 R 101 0 R 109 0 R 118 0 R 122 0 R 133 0 R 142 0 R 154 0 R 156 0 R 169 0 R 177 0 R 185 0 R 191 0 R 197 0 R 204 0 R 214 0 R 219 0 R 226 0 R 230 0 R 235 0 R 238 0 R 248 0 R 250 0 R 257 0 R 262 0 R 265 0 R 280 0 R 282 0 R 293 0 R 297 0 R 311 0 R 321 0 R 324 0 R 327 0 R 333 0 R 336 0 R 346 0 R 355 0 R 357 0 R 360 0 R 371 0 R 381 0 R 389 0 R 395 0 R 405 0 R 412 0 R 419 0 R 431 0 R 438 0 R 445 0 R 449 0 R 454 0 R 458 0 R 462 0 R 464 0 R 467 0 R 471 0 R 473 0 R 477 0 R]
 >>
 endobj
 4 0 obj
@@ -78,17 +78,17 @@ endobj
 endobj
 8 0 obj
 << /Type /Font
-/BaseFont /AAAACJ+NotoSerif
+/BaseFont /AAAACI+NotoSerif
 /Subtype /TrueType
-/FontDescriptor 602 0 R
+/FontDescriptor 618 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 604 0 R
-/ToUnicode 603 0 R
+/Widths 620 0 R
+/ToUnicode 619 0 R
 >>
 endobj
 9 0 obj
-<< /Length 32593
+<< /Length 32405
 >>
 stream
 q
@@ -922,7 +922,7 @@ ET
 BT
 60.24 382.2559999999997 Td
 /F1.0 10.5 Tf
-<342e362e20436f6c6c656374696f6e73206f662076616c756573> Tj
+<342e362e2056696577204d6f64656c20496e7374616e74696174696f6e> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -931,9 +931,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-186.54874999999993 382.2559999999997 Td
+207.92674999999997 382.2559999999997 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -962,7 +962,7 @@ ET
 BT
 60.24 363.77599999999967 Td
 /F1.0 10.5 Tf
-<342e372e20486f7720746f2068616e646c6520766f69642f6e756c6c20726573756c7473> Tj
+<342e372e20436f6c6c656374696f6e73206f662076616c756573> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -971,9 +971,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-239.99374999999998 363.77599999999967 Td
+186.54874999999993 363.77599999999967 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -991,7 +991,7 @@ ET
 BT
 535.3009999999999 363.77599999999967 Td
 /F1.0 10.5 Tf
-<3239> Tj
+<3331> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1002,7 +1002,7 @@ ET
 BT
 60.24 345.29599999999965 Td
 /F1.0 10.5 Tf
-<342e382e204d756c74692d74656e616e6379> Tj
+<342e382e20486f7720746f2068616e646c6520766f69642f6e756c6c20726573756c7473> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1011,9 +1011,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-154.48174999999992 345.29599999999965 Td
+239.99374999999998 345.29599999999965 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1031,7 +1031,7 @@ ET
 BT
 535.3009999999999 345.29599999999965 Td
 /F1.0 10.5 Tf
-<3331> Tj
+<3332> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1042,7 +1042,7 @@ ET
 BT
 60.24 326.81599999999963 Td
 /F1.0 10.5 Tf
-<342e392e20537562636c6173732070726f7065727469657320696e207461626c6573> Tj
+<342e392e204d756c74692d74656e616e6379> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1051,9 +1051,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-223.96024999999997 326.81599999999963 Td
+154.48174999999992 326.81599999999963 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1071,7 +1071,7 @@ ET
 BT
 535.3009999999999 326.81599999999963 Td
 /F1.0 10.5 Tf
-<3331> Tj
+<3334> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1082,7 +1082,7 @@ ET
 BT
 60.24 308.3359999999996 Td
 /F1.0 10.5 Tf
-<342e31302e2050757368696e67204368616e67657320286465707265636174656429> Tj
+<342e31302e20537562636c6173732070726f7065727469657320696e207461626c6573> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1091,9 +1091,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-239.99374999999998 308.3359999999996 Td
+229.30474999999996 308.3359999999996 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1111,7 +1111,7 @@ ET
 BT
 535.3009999999999 308.3359999999996 Td
 /F1.0 10.5 Tf
-<3332> Tj
+<3334> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1122,7 +1122,7 @@ ET
 BT
 60.24 289.8559999999996 Td
 /F1.0 10.5 Tf
-[<342e31312e20486f7720746f20696d706c656d656e742061207370656c6c636865636b> 20.01953125 <65723f>] TJ
+<342e31312e2050757368696e67204368616e67657320286465707265636174656429> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1131,9 +1131,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-261.37174999999996 289.8559999999996 Td
+239.99374999999998 289.8559999999996 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1151,7 +1151,7 @@ ET
 BT
 535.3009999999999 289.8559999999996 Td
 /F1.0 10.5 Tf
-<3334> Tj
+<3335> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1160,9 +1160,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-48.24 271.3759999999996 Td
+60.24 271.3759999999996 Td
 /F1.0 10.5 Tf
-<352e20437573746f6d697a696e67207468652050726f67204d6f64656c> Tj
+[<342e31322e20486f7720746f20696d706c656d656e742061207370656c6c636865636b> 20.01953125 <65723f>] TJ
 ET
 
 0.000 0.000 0.000 SCN
@@ -1171,9 +1171,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-202.58224999999993 271.3759999999996 Td
+261.37174999999996 271.3759999999996 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1191,7 +1191,7 @@ ET
 BT
 535.3009999999999 271.3759999999996 Td
 /F1.0 10.5 Tf
-<3336> Tj
+<3337> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1200,9 +1200,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-60.24 252.89599999999956 Td
+48.24 252.89599999999956 Td
 /F1.0 10.5 Tf
-<352e312e20437573746f6d2076616c696461746f72> Tj
+<352e20437573746f6d697a696e67207468652050726f67204d6f64656c> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1211,9 +1211,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-170.51524999999992 252.89599999999956 Td
+202.58224999999993 252.89599999999956 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1231,7 +1231,7 @@ ET
 BT
 535.3009999999999 252.89599999999956 Td
 /F1.0 10.5 Tf
-<3336> Tj
+<3339> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1242,7 +1242,7 @@ ET
 BT
 60.24 234.41599999999957 Td
 /F1.0 10.5 Tf
-<352e322e2046696e6574756e696e67> Tj
+<352e312e20437573746f6d2076616c696461746f72> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1251,9 +1251,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-138.44824999999992 234.41599999999957 Td
+170.51524999999992 234.41599999999957 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1271,7 +1271,7 @@ ET
 BT
 535.3009999999999 234.41599999999957 Td
 /F1.0 10.5 Tf
-<3338> Tj
+<3339> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1282,7 +1282,7 @@ ET
 BT
 60.24 215.93599999999958 Td
 /F1.0 10.5 Tf
-[<352e332e204c61> 20.01953125 <796f7574204d657461646174612052656164657220286465707265636174656429>] TJ
+<352e322e2046696e6574756e696e67> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1291,9 +1291,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-272.0607499999999 215.93599999999958 Td
+138.44824999999992 215.93599999999958 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1311,7 +1311,7 @@ ET
 BT
 535.3009999999999 215.93599999999958 Td
 /F1.0 10.5 Tf
-<3339> Tj
+<3431> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1320,9 +1320,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-48.24 197.4559999999996 Td
+60.24 197.4559999999996 Td
 /F1.0 10.5 Tf
-[<362e204465706c6f> 20.01953125 <796d656e74>] TJ
+[<352e332e204c61> 20.01953125 <796f7574204d657461646174612052656164657220286465707265636174656429>] TJ
 ET
 
 0.000 0.000 0.000 SCN
@@ -1331,9 +1331,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-122.41474999999997 197.4559999999996 Td
+272.0607499999999 197.4559999999996 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1360,31 +1360,38 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-60.24 178.9759999999996 Td
+48.24 178.9759999999996 Td
 /F1.0 10.5 Tf
-<362e312e20436f6d6d616e64204c696e652028> Tj
+[<362e204465706c6f> 20.01953125 <796d656e74>] TJ
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.694 0.129 0.275 scn
-0.694 0.129 0.275 SCN
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
 
 BT
-162.7305 178.9759999999996 Td
-/F3.0 10.5 Tf
-<576562536572766572> Tj
+122.41474999999997 178.9759999999996 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
+
+BT
+533.94125 178.9759999999996 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-209.9805 178.9759999999996 Td
+535.3009999999999 178.9759999999996 Td
 /F1.0 10.5 Tf
-<29> Tj
+<3435> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1393,27 +1400,20 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-218.61574999999993 178.9759999999996 Td
+60.24 160.4959999999996 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<362e312e20436f6d6d616e64204c696e652028> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
 
 BT
-533.94125 178.9759999999996 Td
-/F1.0 5.25 Tf
-<ca> Tj
-ET
-
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-BT
-535.3009999999999 178.9759999999996 Td
-/F1.0 10.5 Tf
-<3432> Tj
+162.7305 160.4959999999996 Td
+/F3.0 10.5 Tf
+<576562536572766572> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1422,9 +1422,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-60.24 160.4959999999996 Td
+209.9805 160.4959999999996 Td
 /F1.0 10.5 Tf
-[<362e322e204465706c6f> 20.01953125 <79696e6720746f2054> 29.78515625 <6f6d636174>] TJ
+<29> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1433,9 +1433,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-186.54874999999993 160.4959999999996 Td
+218.61574999999993 160.4959999999996 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1453,7 +1453,7 @@ ET
 BT
 535.3009999999999 160.4959999999996 Td
 /F1.0 10.5 Tf
-<3438> Tj
+<3435> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1464,7 +1464,7 @@ ET
 BT
 60.24 142.01599999999962 Td
 /F1.0 10.5 Tf
-[<362e332e20446f636b> 20.01953125 <6572>] TJ
+[<362e322e204465706c6f> 20.01953125 <79696e6720746f2054> 29.78515625 <6f6d636174>] TJ
 ET
 
 0.000 0.000 0.000 SCN
@@ -1473,9 +1473,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-117.07024999999993 142.01599999999962 Td
+186.54874999999993 142.01599999999962 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1493,7 +1493,7 @@ ET
 BT
 535.3009999999999 142.01599999999962 Td
 /F1.0 10.5 Tf
-<3439> Tj
+<3531> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1504,7 +1504,7 @@ ET
 BT
 60.24 123.53599999999963 Td
 /F1.0 10.5 Tf
-[<362e342e204465706c6f> 20.01953125 <79696e6720746f20476f6f676c652041707020456e67696e65>] TJ
+[<362e332e20446f636b> 20.01953125 <6572>] TJ
 ET
 
 0.000 0.000 0.000 SCN
@@ -1513,9 +1513,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-245.33824999999996 123.53599999999963 Td
+117.07024999999993 123.53599999999963 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1533,7 +1533,7 @@ ET
 BT
 535.3009999999999 123.53599999999963 Td
 /F1.0 10.5 Tf
-<3531> Tj
+<3532> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1544,7 +1544,7 @@ ET
 BT
 60.24 105.05599999999964 Td
 /F1.0 10.5 Tf
-<362e352e204e656f344a> Tj
+[<362e342e204465706c6f> 20.01953125 <79696e6720746f20476f6f676c652041707020456e67696e65>] TJ
 ET
 
 0.000 0.000 0.000 SCN
@@ -1553,9 +1553,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-111.72574999999995 105.05599999999964 Td
+245.33824999999996 105.05599999999964 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1573,7 +1573,7 @@ ET
 BT
 535.3009999999999 105.05599999999964 Td
 /F1.0 10.5 Tf
-<3532> Tj
+<3534> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1584,7 +1584,7 @@ ET
 BT
 60.24 86.57599999999965 Td
 /F1.0 10.5 Tf
-<362e362e204a564d20466c616773> Tj
+<362e352e204e656f344a> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1593,9 +1593,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-133.10374999999993 86.57599999999965 Td
+111.72574999999995 86.57599999999965 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1613,7 +1613,7 @@ ET
 BT
 535.3009999999999 86.57599999999965 Td
 /F1.0 10.5 Tf
-<3533> Tj
+<3535> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1622,20 +1622,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-48.24 68.09599999999966 Td
+60.24 68.09599999999966 Td
 /F1.0 10.5 Tf
-<372e20> Tj
-ET
-
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-0.694 0.129 0.275 scn
-0.694 0.129 0.275 SCN
-
-BT
-59.454 68.09599999999966 Td
-/F3.0 10.5 Tf
-<7765622e786d6c> Tj
+<362e362e204a564d20466c616773> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1644,9 +1633,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-101.03674999999993 68.09599999999966 Td
+133.10374999999993 68.09599999999966 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1664,7 +1653,7 @@ ET
 BT
 535.3009999999999 68.09599999999966 Td
 /F1.0 10.5 Tf
-<3535> Tj
+<3536> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1684,11 +1673,11 @@ endobj
 /F3.0 41 0 R
 >>
 >>
-/Annots [466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R]
+/Annots [479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R]
 >>
 endobj
 11 0 obj
-<< /Length 3411
+<< /Length 4418
 >>
 stream
 q
@@ -1698,9 +1687,20 @@ q
 0.200 0.200 0.200 SCN
 
 BT
-60.24 794.6759999999999 Td
+48.24 794.6759999999999 Td
 /F1.0 10.5 Tf
-<372e312e20536572766c657420436f6e74657874204c697374656e657273> Tj
+<372e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+59.454 794.6759999999999 Td
+/F3.0 10.5 Tf
+<7765622e786d6c> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1709,9 +1709,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-207.92674999999997 794.6759999999999 Td
+101.03674999999993 794.6759999999999 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1729,7 +1729,7 @@ ET
 BT
 535.3009999999999 794.6759999999999 Td
 /F1.0 10.5 Tf
-<3537> Tj
+<3538> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1740,7 +1740,7 @@ ET
 BT
 60.24 776.1959999999999 Td
 /F1.0 10.5 Tf
-<372e322e20536572766c657473> Tj
+<372e312e20536572766c657420436f6e74657874204c697374656e657273> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1749,9 +1749,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-122.41474999999997 776.1959999999999 Td
+207.92674999999997 776.1959999999999 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1769,7 +1769,7 @@ ET
 BT
 535.3009999999999 776.1959999999999 Td
 /F1.0 10.5 Tf
-<3539> Tj
+<3630> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1780,7 +1780,7 @@ ET
 BT
 60.24 757.7159999999999 Td
 /F1.0 10.5 Tf
-<372e332e2046696c74657273> Tj
+<372e322e20536572766c657473> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1789,9 +1789,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-117.07024999999993 757.7159999999999 Td
+122.41474999999997 757.7159999999999 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1809,7 +1809,7 @@ ET
 BT
 535.3009999999999 757.7159999999999 Td
 /F1.0 10.5 Tf
-<3630> Tj
+<3632> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1820,7 +1820,7 @@ ET
 BT
 60.24 739.2359999999999 Td
 /F1.0 10.5 Tf
-[<372e342e20436f6e6669677572> 20.01953125 <6174696f6e2046696c6573>] TJ
+<372e332e2046696c74657273> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1829,9 +1829,9 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-181.20424999999994 739.2359999999999 Td
+117.07024999999993 739.2359999999999 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1849,7 +1849,47 @@ ET
 BT
 535.3009999999999 739.2359999999999 Td
 /F1.0 10.5 Tf
-<3637> Tj
+<3633> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24 720.7559999999999 Td
+/F1.0 10.5 Tf
+[<372e342e20436f6e6669677572> 20.01953125 <6174696f6e2046696c6573>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+181.20424999999994 720.7559999999999 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+533.94125 720.7559999999999 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+535.3009999999999 720.7559999999999 Td
+/F1.0 10.5 Tf
+<3730> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -1865,9 +1905,10 @@ endobj
 /Contents 11 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /Font << /F1.0 8 0 R
+/F3.0 41 0 R
 >>
 >>
-/Annots [546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R]
+/Annots [558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R]
 >>
 endobj
 13 0 obj
@@ -2552,7 +2593,7 @@ endobj
 /Font << /F2.0 18 0 R
 /F1.0 8 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [19 0 R 20 0 R 21 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R]
@@ -2567,18 +2608,18 @@ endobj
 >>
 endobj
 17 0 obj
-<< /Kids [115 0 R 427 0 R 216 0 R 275 0 R 437 0 R 116 0 R 452 0 R 249 0 R 379 0 R]
+<< /Kids [115 0 R 441 0 R 216 0 R 288 0 R 447 0 R 116 0 R 260 0 R 383 0 R]
 >>
 endobj
 18 0 obj
 << /Type /Font
-/BaseFont /AAAACK+NotoSerif-Bold
+/BaseFont /AAAACJ+NotoSerif-Bold
 /Subtype /TrueType
-/FontDescriptor 606 0 R
+/FontDescriptor 622 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 608 0 R
-/ToUnicode 607 0 R
+/Widths 624 0 R
+/ToUnicode 623 0 R
 >>
 endobj
 19 0 obj
@@ -3919,7 +3960,7 @@ endobj
 /F5.1 53 0 R
 /F6.0 54 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [42 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 51 0 R 52 0 R]
@@ -3930,13 +3971,13 @@ endobj
 endobj
 41 0 obj
 << /Type /Font
-/BaseFont /AAAACL+mplus1mn-regular
+/BaseFont /AAAACK+mplus1mn-regular
 /Subtype /TrueType
-/FontDescriptor 610 0 R
+/FontDescriptor 626 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 612 0 R
-/ToUnicode 611 0 R
+/Widths 628 0 R
+/ToUnicode 627 0 R
 >>
 endobj
 42 0 obj
@@ -3952,13 +3993,13 @@ endobj
 endobj
 43 0 obj
 << /Type /Font
-/BaseFont /AAAACM+mplus-1p-regular
+/BaseFont /AAAACL+mplus-1p-regular
 /Subtype /TrueType
-/FontDescriptor 614 0 R
+/FontDescriptor 630 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 616 0 R
-/ToUnicode 615 0 R
+/Widths 632 0 R
+/ToUnicode 631 0 R
 >>
 endobj
 44 0 obj
@@ -4054,24 +4095,24 @@ endobj
 endobj
 53 0 obj
 << /Type /Font
-/BaseFont /AAAACN+FontAwesome
+/BaseFont /AAAACM+FontAwesome
 /Subtype /TrueType
-/FontDescriptor 618 0 R
+/FontDescriptor 634 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 620 0 R
-/ToUnicode 619 0 R
+/Widths 636 0 R
+/ToUnicode 635 0 R
 >>
 endobj
 54 0 obj
 << /Type /Font
-/BaseFont /AAAACO+NotoSerif-Italic
+/BaseFont /AAAACN+NotoSerif-Italic
 /Subtype /TrueType
-/FontDescriptor 622 0 R
+/FontDescriptor 638 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 624 0 R
-/ToUnicode 623 0 R
+/Widths 640 0 R
+/ToUnicode 639 0 R
 >>
 endobj
 55 0 obj
@@ -5933,7 +5974,7 @@ endobj
 /F3.1 61 0 R
 /F4.0 43 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [57 0 R 58 0 R 59 0 R]
@@ -5977,13 +6018,13 @@ endobj
 endobj
 61 0 obj
 << /Type /Font
-/BaseFont /AAAACP+mplus1mn-regular
+/BaseFont /AAAACO+mplus1mn-regular
 /Subtype /TrueType
-/FontDescriptor 626 0 R
+/FontDescriptor 642 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 628 0 R
-/ToUnicode 627 0 R
+/Widths 644 0 R
+/ToUnicode 643 0 R
 >>
 endobj
 62 0 obj
@@ -7122,7 +7163,7 @@ endobj
 /F3.0 41 0 R
 /F1.0 8 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [65 0 R 66 0 R 69 0 R]
@@ -9923,7 +9964,7 @@ endobj
 /F1.0 8 0 R
 /F3.1 61 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [72 0 R]
@@ -11492,7 +11533,7 @@ endobj
 /F3.1 61 0 R
 /F2.0 18 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [75 0 R 77 0 R 79 0 R]
@@ -12981,7 +13022,7 @@ endobj
 /F1.0 8 0 R
 /F2.0 18 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 >>
@@ -13516,7 +13557,7 @@ endobj
 /F2.0 18 0 R
 /F1.0 8 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [86 0 R]
@@ -14076,7 +14117,7 @@ endobj
 /Font << /F3.0 41 0 R
 /F1.0 8 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 >>
@@ -14610,7 +14651,7 @@ endobj
 /Font << /F3.0 41 0 R
 /F1.0 8 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 >>
@@ -15162,7 +15203,7 @@ endobj
 /F2.0 18 0 R
 /F1.0 8 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [94 0 R 95 0 R]
@@ -17083,7 +17124,7 @@ endobj
 /F5.1 53 0 R
 /F2.0 18 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [98 0 R]
@@ -18282,7 +18323,7 @@ endobj
 /F2.0 18 0 R
 /F6.0 54 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [102 0 R 103 0 R 104 0 R]
@@ -19303,7 +19344,7 @@ endobj
 /F1.0 8 0 R
 /F2.0 18 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [111 0 R]
@@ -19334,12 +19375,12 @@ endobj
 endobj
 115 0 obj
 << /Limits [(__ugbtb) (__ugbtb_i18n_wicket-viewer)]
-/Names [(__ugbtb) 15 0 R (__ugbtb_deployment_externalized-configuration_Isis) 330 0 R (__ugbtb_deployment_externalized-configuration_Log4j) 335 0 R (__ugbtb_deployment_externalized-configuration_Shiro) 333 0 R (__ugbtb_i18n_configuration) 105 0 R (__ugbtb_i18n_imperative-messages) 67 0 R (__ugbtb_i18n_implementation-approach) 50 0 R (__ugbtb_i18n_integration-testing) 93 0 R (__ugbtb_i18n_translation-service) 60 0 R (__ugbtb_i18n_wicket-viewer) 78 0 R]
+/Names [(__ugbtb) 15 0 R (__ugbtb_deployment_externalized-configuration_Isis) 344 0 R (__ugbtb_deployment_externalized-configuration_Log4j) 349 0 R (__ugbtb_deployment_externalized-configuration_Shiro) 347 0 R (__ugbtb_i18n_configuration) 105 0 R (__ugbtb_i18n_imperative-messages) 67 0 R (__ugbtb_i18n_implementation-approach) 50 0 R (__ugbtb_i18n_integration-testing) 93 0 R (__ugbtb_i18n_translation-service) 60 0 R (__ugbtb_i18n_wicket-viewer) 78 0 R]
 >>
 endobj
 116 0 obj
-<< /Limits [(code-translatablestring-code) (configuring-in-tomcat)]
-/Names [(code-translatablestring-code) 68 0 R (code-translationservicepo-code) 64 0 R (code-translationservicepomenu-code) 120 0 R (code-translationsresolver-code) 119 0 R (code-visitor-code) 277 0 R (code-wicketfilter-code) 451 0 R (commonly-used) 82 0 R (configuration) 281 0 R (configuration-2) 311 0 R (configuring-in-tomcat) 401 0 R]
+<< /Limits [(code-translatablestring-code) (force-read-mode)]
+/Names [(code-translatablestring-code) 68 0 R (code-translationservicepo-code) 64 0 R (code-translationservicepomenu-code) 120 0 R (code-translationsresolver-code) 119 0 R (code-visitor-code) 291 0 R (code-wicketfilter-code) 465 0 R (commonly-used) 82 0 R (configuration) 295 0 R (configuration-2) 325 0 R (configuring-in-tomcat) 415 0 R (connectionurl) 403 0 R (custom-types) 396 0 R (decorating-existing-implementations) 195 0 R (default-implementation) 318 0 R (escaped-strings) 99 0 R (example) 227 0 R (extended-api) 322 0 R (externalized-translation-files) 110 0 R (force-read-mode) 112 0 R]
 >>
 endobj
 117 0 obj
@@ -20082,7 +20123,7 @@ endobj
 /F3.0 41 0 R
 /F2.0 18 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 >>
@@ -22395,7 +22436,7 @@ endobj
 /F3.1 61 0 R
 /F4.0 43 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [124 0 R 125 0 R 126 0 R 127 0 R 129 0 R 130 0 R 131 0 R]
@@ -23730,7 +23771,7 @@ endobj
 /F5.1 53 0 R
 /F2.0 18 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [135 0 R 136 0 R 137 0 R 138 0 R]
@@ -24360,7 +24401,7 @@ endobj
 /Contents 141 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /XObject << /I1 139 0 R
-/Stamp1 554 0 R
+/Stamp1 569 0 R
 >>
 /Font << /F6.0 54 0 R
 /F3.0 41 0 R
@@ -24681,7 +24722,7 @@ endobj
 /Contents 153 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /XObject << /I2 151 0 R
-/Stamp1 554 0 R
+/Stamp1 569 0 R
 >>
 /Font << /F6.0 54 0 R
 /F3.0 41 0 R
@@ -25824,7 +25865,7 @@ endobj
 /F1.0 8 0 R
 /F3.0 41 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 166 0 R]
@@ -26183,7 +26224,7 @@ endobj
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /XObject << /I3 167 0 R
 /I4 172 0 R
-/Stamp1 554 0 R
+/Stamp1 569 0 R
 >>
 /Font << /F2.0 18 0 R
 /F1.0 8 0 R
@@ -27500,7 +27541,7 @@ endobj
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /XObject << /I5 175 0 R
 /I6 179 0 R
-/Stamp1 554 0 R
+/Stamp1 569 0 R
 >>
 /Font << /F1.0 8 0 R
 /F3.0 41 0 R
@@ -29004,7 +29045,7 @@ endobj
 /F3.0 41 0 R
 /F3.1 61 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [187 0 R 188 0 R 189 0 R]
@@ -31413,7 +31454,7 @@ endobj
 /F2.0 18 0 R
 /F3.1 61 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [192 0 R 193 0 R 194 0 R]
@@ -32604,7 +32645,7 @@ endobj
 /F5.1 53 0 R
 /F3.0 41 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [199 0 R 201 0 R 202 0 R]
@@ -33542,7 +33583,7 @@ endobj
 /F2.0 18 0 R
 /F3.0 41 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [206 0 R 207 0 R 208 0 R 210 0 R 211 0 R 212 0 R]
@@ -35966,7 +36007,7 @@ endobj
 /F3.0 41 0 R
 /F3.1 61 0 R
 >>
-/XObject << /Stamp1 554 0 R
+/XObject << /Stamp1 569 0 R
 >>
 >>
 /Annots [217 0 R]
@@ -35977,7 +36018,7 @@ endobj
 endobj
 216 0 obj
 << /Limits [(_ugbtb_hints-and-tips) (_ugbtb_hints-and-tips_subclass-properties-in-tables)]
-/Names [(_ugbtb_hints-and-tips) 157 0 R (_ugbtb_hints-and-tips_are-you-sure) 164 0 R (_ugbtb_hints-and-tips_how-to-handle-void-and-null-results) 228 0 R (_ugbtb_hints-and-tips_how-to-implement-a-spellchecker) 258 0 R (_ugbtb_hints-and-tips_multi-tenancy) 237 0 R (_ugbtb_hints-and-tips_persisted-title) 215 0 R (_ugbtb_hints-and-tips_pushing-changes) 244 0 R (_ugbtb_hints-and-tips_replacing-default-service-implementations) 186 0 R (_ugbtb_hints-and-tips_simulating-collections-of-values) 222 0 R (_ugbtb_hints-and-tips_subclass-properties-in-tables) 240 0 R]
+/Names [(_ugbtb_hints-and-tips) 157 0 R (_ugbtb_hints-and-tips_are-you-sure) 164 0 R (_ugbtb_hints-and-tips_how-to-handle-void-and-null-results) 242 0 R (_ugbtb_hints-and-tips_how-to-implement-a-spellchecker) 272 0 R (_ugbtb_hints-and-tips_multi-tenancy) 251 0 R (_ugbtb_hints-and-tips_persisted-title) 215 0 R (_ugbtb_hints-and-tips_pushing-changes) 258 0 R (_ugbtb_hints-and-tips_replacing-default-service-implementations) 186 0 R (_ugbtb_hints-and-tips_simulating-collections-of-values) 236 0 R (_ugbtb_hints-and-tips_subclass-properties-in-tables) 254 0 R]
 >>
 endobj
 217 0 obj
@@ -35992,7 +36033,7 @@ endobj
 >>
 endobj
 218 0 obj
-<< /Length 30050
+<< /Length 35351
 >>
 stream
 q
@@ -37959,7 +38000,7 @@ ET
 BT
 48.24 290.5459999999998 Td
 /F2.0 18 Tf
-<342e362e20436f6c6c656374696f6e73206f662076616c756573> Tj
+<342e362e2056696577204d6f64656c20496e7374616e74696174696f6e> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -37967,12 +38008,12 @@ ET
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-1.348 Tw
+0.330 Tw
 
 BT
 48.24 262.5259999999998 Td
 /F1.0 10.5 Tf
-<416c74686f75676820696e20417061636865204973697320796f752063616e20686176652070726f70657274696573206f66206569746865722076616c7565732028737472696e672c206e756d6265722c20646174652065746329206f72206f66> Tj
+[<566974682076696577206d6f64656c732c20736f6d652063617265206d7573742062652074616b> 20.01953125 <656e20696e20686f7720746865792061726520696e7374616e7469617465642e205370656369666963616c6c79> 89.84375 <2c206974d57320696d706f7274616e74>] TJ
 ET
 
 
@@ -37982,12 +38023,12 @@ ET
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-1.035 Tw
+0.063 Tw
 
 BT
 48.24 246.74599999999978 Td
 /F1.0 10.5 Tf
-[<287265666572656e63657320746f206f746865722920656e7469746965732c207769746820636f6c6c656374696f6e7320746865206672> 20.01953125 <616d65776f726b202863757272656e746c7929206f6e6c7920737570706f72747320636f6c6c656374696f6e73>] TJ
+[<7468617420746865206672> 20.01953125 <616d65776f726b20646f65736ed57420226b6e6f77222061626f7574207468652076696577206d6f64656c20756e74696c20697473207374617465206973202273756666696369656e746c792220706f70756c6174656420746f>] TJ
 ET
 
 
@@ -38000,7 +38041,7 @@ ET
 BT
 48.24 230.96599999999978 Td
 /F1.0 10.5 Tf
-[<6f6620287265666572656e63657320746f2920656e7469746965732e2020546861742069732c20636f6c6c656374696f6e73206f662076616c75657320286120626167206f66206e756d626572732c207361> 20.01953125 <792920617265206e6f7420737570706f727465642e>] TJ
+<64697374696e67756973682066726f6d206f746865722076696577206d6f64656c732e> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -38008,43 +38049,36 @@ ET
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
+1.790 Tw
+
 BT
 48.24 203.18599999999978 Td
 /F1.0 10.5 Tf
-<486f77657665722c20697420697320706f737369626c6520746f2073696d756c617465206120626167206f66206e756d62657273207573696e672076696577206d6f64656c732e> Tj
+[<496e207072> 20.01953125 <6163746963616c207465726d732c2074686973206d65616e7320746861742076696577206d6f64656c732073686f756c6420626520696e7374616e746961746564207573696e67206120636f6e7374727563746f722c20616e64>] TJ
 ET
 
+
+0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-48.24 168.68599999999975 Td
-/F2.0 13 Tf
-<342e362e312e2056696577204d6f64656c> Tj
+48.24 187.40599999999978 Td
+/F1.0 10.5 Tf
+<7468656e20696e6a656374696e672073657276696365732028696620726571756972656429207573696e672074686520> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-q
-0.5 w
-0.933 0.933 0.933 SCN
-113.807 130.310 m
-113.807 154.090 l
-S
-Q
-0.098 0.251 0.486 scn
-0.098 0.251 0.486 SCN
-0.000 0.000 0.000 SCN
-0.000 0.000 0.000 scn
-0.098 0.251 0.486 scn
-0.098 0.251 0.486 SCN
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
 
 BT
-77.16783333333333 133.97749999999976 Td
-/F5.1 23 Tf
-<22> Tj
+275.4075 187.40599999999978 Td
+/F3.0 10.5 Tf
+<536572766963655265676973747279> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -38053,122 +38087,80 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-125.80666666666667 138.12599999999975 Td
+354.1575 187.40599999999978 Td
 /F1.0 10.5 Tf
-<4649584d45> Tj
+<20736572766963653a> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
+q
+0.961 0.961 0.961 scn
+52.240 171.590 m
+543.040 171.590 l
+545.249 171.590 547.040 169.799 547.040 167.590 c
+547.040 124.110 l
+547.040 121.901 545.249 120.110 543.040 120.110 c
+52.240 120.110 l
+50.031 120.110 48.240 121.901 48.240 124.110 c
+48.240 167.590 l
+48.240 169.799 50.031 171.590 52.240 171.590 c
+h
+f
+0.800 0.800 0.800 SCN
+0.75 w
+52.240 171.590 m
+543.040 171.590 l
+545.249 171.590 547.040 169.799 547.040 167.590 c
+547.040 124.110 l
+547.040 121.901 545.249 120.110 543.040 120.110 c
+52.240 120.110 l
+50.031 120.110 48.240 121.901 48.240 124.110 c
+48.240 167.590 l
+48.240 169.799 50.031 171.590 52.240 171.590 c
+h
+S
+Q
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-48.24000000000001 99.62599999999975 Td
-/F2.0 13 Tf
-<342e362e322e2050657273697374656e636520436f6e6365726e73> Tj
+59.24 148.76499999999976 Td
+/F3.0 11 Tf
+<437573746f6d6572566965774d6f64656c> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-q
-0.000 0.000 0.000 scn
-0.000 0.000 0.000 SCN
-1 w
-0 J
-0 j
-[ ] 0 d
-/Stamp1 Do
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-49.24 14.388 Td
-/F1.0 9 Tf
-<3238> Tj
+152.74 148.76499999999976 Td
+/F3.0 11 Tf
+<20> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-Q
-Q
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+158.24 148.76499999999976 Td
+/F3.0 11 Tf
+<766965774d6f64656c> Tj
+ET
 
-endstream
-endobj
-219 0 obj
-<< /Type /Page
-/Parent 3 0 R
-/MediaBox [0 0 595.28 841.89]
-/Contents 218 0 R
-/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
-/Font << /F3.0 41 0 R
-/F1.0 8 0 R
-/F2.0 18 0 R
-/F5.1 53 0 R
->>
-/XObject << /Stamp1 554 0 R
->>
->>
-/Annots [220 0 R 221 0 R]
->>
-endobj
-220 0 obj
-<< /Border [0 0 0]
-/A << /Type /Action
-/S /URI
-/URI (http://lucene.apache.org/)
->>
-/Subtype /Link
-/Rect [509.85949999999997 343.09999999999985 547.04 357.3799999999998]
-/Type /Annot
->>
-endobj
-221 0 obj
-<< /Border [0 0 0]
-/A << /Type /Action
-/S /URI
-/URI (http://lucene.apache.org/)
->>
-/Subtype /Link
-/Rect [48.24 327.3199999999999 84.612 341.59999999999985]
-/Type /Annot
->>
-endobj
-222 0 obj
-[219 0 R /XYZ 0 314.5699999999998 null]
-endobj
-223 0 obj
-[219 0 R /XYZ 0 187.36999999999978 null]
-endobj
-224 0 obj
-[219 0 R /XYZ 0 118.30999999999975 null]
-endobj
-225 0 obj
-<< /Length 8346
->>
-stream
-q
-q
-0.5 w
-/DeviceRGB CS
-0.933 0.933 0.933 SCN
-113.807 750.550 m
-113.807 805.890 l
-S
-Q
-/DeviceRGB cs
-0.098 0.251 0.486 scn
-/DeviceRGB CS
-0.098 0.251 0.486 SCN
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.098 0.251 0.486 scn
-0.098 0.251 0.486 SCN
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
 
 BT
-76.73933333333333 769.64 Td
-/F5.1 24 Tf
-<22> Tj
+207.74 148.76499999999976 Td
+/F3.0 11 Tf
+<20> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -38176,70 +38168,54 @@ ET
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-3.486 Tw
-
 BT
-125.80666666666667 789.9259999999999 Td
-/F1.0 10.5 Tf
-<4649584d45202d20206561736965737420746f2073696d706c792073746f7265207573696e6720446174614e75636c6575732720737570706f727420666f7220636f6c6c656374696f6e732c> Tj
+213.24 148.76499999999976 Td
+/F3.0 11 Tf
+<3d> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-1.506 Tw
-
 BT
-125.80666666666667 774.146 Td
-/F1.0 10.5 Tf
-[<6d61726b> 20.01953125 <656420617320>] TJ
+218.74 148.76499999999976 Td
+/F3.0 11 Tf
+<20> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.694 0.129 0.275 scn
-0.694 0.129 0.275 SCN
-
-1.506 Tw
+0.000 0.400 0.600 scn
+0.000 0.400 0.600 SCN
 
 BT
-183.62857597155448 774.146 Td
-/F3.0 10.5 Tf
-<4050726f6772616d6d61746963> Tj
+224.24 148.76499999999976 Td
+/F3.0 11 Tf
+<6e6577> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-1.506 Tw
-
 BT
-251.87857597155448 774.146 Td
-/F1.0 10.5 Tf
-[<20736f20746861742069742069732069676e6f7265642062> 20.01953125 <792041706163686520497369732e2020416c7465726e61746976656c792063616e>] TJ
+240.74 148.76499999999976 Td
+/F3.0 11 Tf
+<20> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-125.80666666666667 758.366 Td
-/F1.0 10.5 Tf
-<73746f7265206173206a736f6e2f786d6c20696e20612076617263686172283430303029206f7220636c6f6220616e64206d616e75616c6c7920756e7061636b2e> Tj
+246.24 148.76499999999976 Td
+/F3.0 11 Tf
+<437573746f6d6572566965774d6f64656c> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -38248,201 +38224,8777 @@ ET
 0.200 0.200 0.200 SCN
 
 BT
-48.24000000000001 714.526 Td
-/F2.0 18 Tf
-<342e372e20486f7720746f2068616e646c6520766f69642f6e756c6c20726573756c7473> Tj
+339.74 148.76499999999976 Td
+/F3.0 11 Tf
+<28> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
 
 BT
-48.24000000000001 686.506 Td
-/F1.0 10.5 Tf
-<46726f6d207468697320> Tj
+345.24 148.76499999999976 Td
+/F3.0 11 Tf
+<22> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
 
 BT
-99.21750000000002 686.506 Td
-/F1.0 10.5 Tf
-<746872656164> Tj
+350.74 148.76499999999976 Td
+/F3.0 11 Tf
+<4a6f65> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
 
 BT
-132.471 686.506 Td
-/F1.0 10.5 Tf
-<206f6e20746865204170616368652049736973207573657273206d61696c696e67206c6973743a> Tj
+367.24 148.76499999999976 Td
+/F3.0 11 Tf
+<22> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-
--0.500 Tc
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-56.88050000000001 658.726 Td
-/F1.0 10.5 Tf
-<a5> Tj
+372.74 148.76499999999976 Td
+/F3.0 11 Tf
+<2c> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-
-0.000 Tc
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-0.821 Tw
-
 BT
-66.24000000000001 658.726 Td
-/F6.0 10.5 Tf
-<5768656e207573696e67206120> Tj
+378.24 148.76499999999976 Td
+/F3.0 11 Tf
+<20> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.694 0.129 0.275 scn
-0.694 0.129 0.275 SCN
-
-0.821 Tw
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
 
 BT
-138.12911751302084 658.726 Td
-/F7.0 10.5 Tf
-<766f6964> Tj
+383.74 148.76499999999976 Td
+/F3.0 11 Tf
+<22> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-0.821 Tw
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
 
 BT
-159.12911751302084 658.726 Td
-/F6.0 10.5 Tf
-[<20616374696f6e2c206c6574d573207361> 20.01953125 <7920612072656d6f766520616374696f6e2c207468652075736572206973207265646972656374656420746f2061207061676520226e6f20726573756c7473222e>] TJ
+389.24 148.76499999999976 Td
+/F3.0 11 Tf
+<426c6f676773> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.200 0.200 0.200 scn
-0.200 0.200 0.200 SCN
-
-1.062 Tw
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
 
 BT
-66.24000000000001 642.946 Td
-/F6.0 10.5 Tf
-<5768656e20636c69636b696e6720746865206261636b20627574746f6e20696e207468652062726f77736572207468652075736572207365657320224f626a656374206e6f7420666f756e6422202873696e636520796f75d57665206a757374> Tj
+422.24 148.76499999999976 Td
+/F3.0 11 Tf
+<22> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-66.24000000000001 627.166 Td
-/F6.0 10.5 Tf
-<64656c657465642074686973206f626a656374292e> Tj
+427.74 148.76499999999976 Td
+/F3.0 11 Tf
+<29> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-
--0.500 Tc
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-56.88050000000001 605.386 Td
-/F1.0 10.5 Tf
-<a5> Tj
+433.24 148.76499999999976 Td
+/F3.0 11 Tf
+<3b> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-
-0.000 Tc
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-0.013 Tw
-
 BT
-66.24000000000001 605.386 Td
-/F6.0 10.5 Tf
-[<59> 69.82421875 <6f752063616e2072657475726e2061206c69737420666f72206578616d706c6520746f2070726576656e742074686520757365722066726f6d206265696e6720726564697265637420746f206120224e6f20726573756c74732220706167652c20627574>] TJ
+59.24 134.02499999999975 Td
+/F3.0 11 Tf
+<736572766963655265676973747279> Tj
 ET
 
-
-0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-66.24000000000001 589.606 Td
-/F6.0 10.5 Tf
-<49207468696e6b206974d573206e6f742074686520726573706f6e736962696c697479206f662074686520636f6e74726f6c6c65727320696e2074686520646f6d61696e206d6f64656c2e> Tj
+141.74 134.02499999999975 Td
+/F3.0 11 Tf
+<2e> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-
--0.500 Tc
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
 BT
-56.88050000000001 567.826 Td
-/F1.0 10.5 Tf
-<a5> Tj
+147.24 134.02499999999975 Td
+/F3.0 11 Tf
+<696e6a6563745365727669636573496e746f> Tj
 ET
 
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-
-0.000 Tc
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
-0.955 Tw
-
 BT
-66.24000000000001 567.826 Td
-/F6.0 10.5 Tf
-[<4120736f6c7574696f6e20636f756c642062652074686174207769636b> 20.01953125 <65742076696577657220676f6573206261636b206f6e652070616765207768656e202020656e636f756e746572696e6720612064656c65746564206f626a6563742e>] TJ
+246.24 134.02499999999975 Td
+/F3.0 11 Tf
+<28> Tj
 ET
 
-
-0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+251.74 134.02499999999975 Td
+/F3.0 11 Tf
+<766965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+301.24 134.02499999999975 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+306.74 134.02499999999975 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 96.14599999999976 Td
+/F1.0 10.5 Tf
+[<576861742077696c6c206d6f7374206c696b> 20.01953125 <656c7920>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+156.97779492187502 96.14599999999976 Td
+/F2.0 10.5 Tf
+<6661696c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+174.932794921875 96.14599999999976 Td
+/F1.0 10.5 Tf
+<20697320746f207573652074686520> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+239.35029492187502 96.14599999999976 Td
+/F3.0 10.5 Tf
+<466163746f727953657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+312.85029492187505 96.14599999999976 Td
+/F1.0 10.5 Tf
+<3a> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+/Stamp1 Do
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+49.24 14.388 Td
+/F1.0 9 Tf
+<3238> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+219 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/Contents 218 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F3.0 41 0 R
+/F1.0 8 0 R
+/F2.0 18 0 R
+>>
+/XObject << /Stamp1 569 0 R
+>>
+>>
+/Annots [220 0 R 221 0 R 223 0 R 224 0 R]
+>>
+endobj
+220 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (http://lucene.apache.org/)
+>>
+/Subtype /Link
+/Rect [509.85949999999997 343.09999999999985 547.04 357.3799999999998]
+/Type /Annot
+>>
+endobj
+221 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (http://lucene.apache.org/)
+>>
+/Subtype /Link
+/Rect [48.24 327.3199999999999 84.612 341.59999999999985]
+/Type /Annot
+>>
+endobj
+222 0 obj
+[219 0 R /XYZ 0 314.5699999999998 null]
+endobj
+223 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (../rgsvc/rgsvc.pdf#_rgsvc_metadata-api_ServiceRegistry)
+>>
+/Subtype /Link
+/Rect [275.4075 185.93599999999978 354.1575 196.43599999999978]
+/Type /Annot
+>>
+endobj
+224 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (../rgsvc/rgsvc.pdf#_rgsvc_core-domain-api_FactoryService)
+>>
+/Subtype /Link
+/Rect [239.35029492187502 94.67599999999976 312.85029492187505 105.17599999999976]
+/Type /Annot
+>>
+endobj
+225 0 obj
+<< /Length 40311
+>>
+stream
+q
+q
+/DeviceRGB cs
+0.961 0.961 0.961 scn
+52.240 805.890 m
+543.040 805.890 l
+545.249 805.890 547.040 804.099 547.040 801.890 c
+547.040 699.450 l
+547.040 697.241 545.249 695.450 543.040 695.450 c
+52.240 695.450 l
+50.031 695.450 48.240 697.241 48.240 699.450 c
+48.240 801.890 l
+48.240 804.099 50.031 805.890 52.240 805.890 c
+h
+f
+/DeviceRGB CS
+0.800 0.800 0.800 SCN
+0.75 w
+52.240 805.890 m
+543.040 805.890 l
+545.249 805.890 547.040 804.099 547.040 801.890 c
+547.040 699.450 l
+547.040 697.241 545.249 695.450 543.040 695.450 c
+52.240 695.450 l
+50.031 695.450 48.240 697.241 48.240 699.450 c
+48.240 801.890 l
+48.240 804.099 50.031 805.890 52.240 805.890 c
+h
+S
+Q
+/DeviceRGB cs
+0.600 0.600 0.600 scn
+/DeviceRGB CS
+0.600 0.600 0.600 SCN
+
+BT
+59.24 783.0649999999999 Td
+/F3.0 11 Tf
+<2f2f20444f4e275420444f205448495320574954482056494557204d4f44454c53> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 768.3249999999999 Td
+/F3.0 11 Tf
+<437573746f6d6572566965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+152.74 768.3249999999999 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+158.24 768.3249999999999 Td
+/F3.0 11 Tf
+<766965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+207.74 768.3249999999999 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+213.24 768.3249999999999 Td
+/F3.0 11 Tf
+<3d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+218.74 768.3249999999999 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+224.24 768.3249999999999 Td
+/F3.0 11 Tf
+<666163746f727953657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+301.24 768.3249999999999 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+306.74 768.3249999999999 Td
+/F3.0 11 Tf
+<696e7374616e7469617465> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+367.24 768.3249999999999 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+372.74 768.3249999999999 Td
+/F3.0 11 Tf
+<437573746f6d6572566965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+466.24 768.3249999999999 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+471.74 768.3249999999999 Td
+/F3.0 11 Tf
+<636c617373> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+499.24 768.3249999999999 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+504.74 768.3249999999999 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 738.845 Td
+/F3.0 11 Tf
+<766965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+108.74000000000001 738.845 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+114.24000000000001 738.845 Td
+/F3.0 11 Tf
+<73657446697273744e616d65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+180.24 738.845 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+185.74 738.845 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+191.24 738.845 Td
+/F3.0 11 Tf
+<4a6f65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+207.74 738.845 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+213.24 738.845 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+218.74 738.845 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 724.105 Td
+/F3.0 11 Tf
+<766965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+108.74000000000001 724.105 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+114.24000000000001 724.105 Td
+/F3.0 11 Tf
+<7365744c6173744e616d65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+174.74 724.105 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+180.24 724.105 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+185.74 724.105 Td
+/F3.0 11 Tf
+<426c6f676773> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+218.74 724.105 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+224.24 724.105 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+229.74 724.105 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 709.365 Td
+/F3.0 11 Tf
+<736572766963655265676973747279> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+141.74 709.365 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+147.24 709.365 Td
+/F3.0 11 Tf
+<696e6a6563745365727669636573496e746f> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+246.24 709.365 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+251.74 709.365 Td
+/F3.0 11 Tf
+<766965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+301.24 709.365 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+306.74 709.365 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.958 Tw
+
+BT
+48.24 671.4859999999999 Td
+/F1.0 10.5 Tf
+[<54686174d57320626563617573652074686520696e7465726e616c20224f494422206964656e746966696572207468617420746865206672> 20.01953125 <616d65776f726b206372656174657320746f2068616e646c6520746869732076696577206d6f64656c>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+5.392 Tw
+
+BT
+48.24 655.7059999999999 Td
+/F1.0 10.5 Tf
+[<77696c6c20626520696e636f6d706c6574652e20416c74686f75676820746865206672> 20.01953125 <616d65776f726b2063616e2068616e646c65206368616e67657320746f20746865204f494420287768656e20746865>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+4.884 Tw
+
+BT
+48.24 639.9259999999999 Td
+/F1.0 10.5 Tf
+<636f72726573706f6e64696e672076696577206d6f64656cd573207374617465206368616e67657329206f6e636520637265617465642c20746869732069736ed57420746865206361736520647572696e6720696e697469616c> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 624.146 Td
+/F1.0 10.5 Tf
+<696e7374616e74696174696f6e2070726f636573732e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 589.646 Td
+/F2.0 13 Tf
+<342e362e312e204578616d706c65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 563.086 Td
+/F1.0 10.5 Tf
+[<54> 29.78515625 <6f206578706c61696e20667572746865722c2068657265d57320616e20696d706c656d656e746174696f6e207573696e6720>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+306.24825585937504 563.086 Td
+/F3.0 10.5 Tf
+<466163746f727953657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+379.74825585937504 563.086 Td
+/F1.0 10.5 Tf
+<2074686174206661696c733a> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+q
+0.961 0.961 0.961 scn
+52.240 547.270 m
+543.040 547.270 l
+545.249 547.270 547.040 545.479 547.040 543.270 c
+547.040 160.770 l
+547.040 158.561 545.249 156.770 543.040 156.770 c
+52.240 156.770 l
+50.031 156.770 48.240 158.561 48.240 160.770 c
+48.240 543.270 l
+48.240 545.479 50.031 547.270 52.240 547.270 c
+h
+f
+0.800 0.800 0.800 SCN
+0.75 w
+52.240 547.270 m
+543.040 547.270 l
+545.249 547.270 547.040 545.479 547.040 543.270 c
+547.040 160.770 l
+547.040 158.561 545.249 156.770 543.040 156.770 c
+52.240 156.770 l
+50.031 156.770 48.240 158.561 48.240 160.770 c
+48.240 543.270 l
+48.240 545.479 50.031 547.270 52.240 547.270 c
+h
+S
+Q
+0.600 0.600 1.000 scn
+0.600 0.600 1.000 SCN
+
+BT
+59.24 524.4450000000002 Td
+/F3.0 11 Tf
+<40586d6c526f6f74456c656d656e74> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+141.74 524.4450000000002 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+147.24 524.4450000000002 Td
+/F3.0 11 Tf
+<6e616d65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+169.24 524.4450000000002 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+174.74 524.4450000000002 Td
+/F3.0 11 Tf
+<3d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+180.24 524.4450000000002 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+185.74 524.4450000000002 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+191.24 524.4450000000002 Td
+/F3.0 11 Tf
+<7965617253756d6d617279> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+251.74 524.4450000000002 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+257.24 524.4450000000002 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.600 0.600 1.000 scn
+0.600 0.600 1.000 SCN
+
+BT
+59.24 509.7050000000001 Td
+/F3.0 11 Tf
+<40586d6c54797065> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+103.24000000000001 509.7050000000001 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+108.74000000000001 509.7050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+114.24000000000001 509.7050000000001 Td
+/F3.0 11 Tf
+<70726f704f72646572> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+163.74 509.7050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+169.24 509.7050000000001 Td
+/F3.0 11 Tf
+<3d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+174.74 509.7050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+180.24 509.7050000000001 Td
+/F3.0 11 Tf
+<7b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+185.74 509.7050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+191.24 509.7050000000001 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+196.74 509.7050000000001 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+202.24 509.7050000000001 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+207.74 509.7050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+213.24 509.7050000000001 Td
+/F3.0 11 Tf
+<7d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+218.74 509.7050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+224.24 509.7050000000001 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.600 0.600 1.000 scn
+0.600 0.600 1.000 SCN
+
+BT
+59.24 494.9650000000001 Td
+/F3.0 11 Tf
+<40586d6c4163636573736f7254797065> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+147.24 494.9650000000001 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+152.74 494.9650000000001 Td
+/F3.0 11 Tf
+<586d6c41636365737354797065> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+224.24 494.9650000000001 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+229.74 494.9650000000001 Td
+/F3.0 11 Tf
+<4649454c44> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+257.24 494.9650000000001 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.400 0.600 scn
+0.000 0.400 0.600 SCN
+
+BT
+59.24 480.2250000000001 Td
+/F3.0 11 Tf
+<7075626c6963> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+92.24000000000001 480.2250000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.467 0.533 scn
+0.000 0.467 0.533 SCN
+
+BT
+97.74000000000001 480.2250000000001 Td
+/F3.0 11 Tf
+<636c617373> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+125.24000000000001 480.2250000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.667 0.533 scn
+0.000 0.667 0.533 SCN
+
+BT
+130.74 480.2250000000001 Td
+/F3.0 11 Tf
+<5965617253756d6d617279> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+191.24 480.2250000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+196.74 480.2250000000001 Td
+/F3.0 11 Tf
+<7b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+202.24 480.2250000000001 Td
+/F3.0 11 Tf
+<2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+477.24 480.2250000000001 Td
+/F3.1 11 Tf
+<21> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 465.48500000000007 Td
+/F3.0 11 Tf
+<ca202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+81.24000000000001 465.48500000000007 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+86.74000000000001 465.48500000000007 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+92.24000000000001 465.48500000000007 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 450.7450000000001 Td
+/F3.0 11 Tf
+<ca202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.600 0.600 1.000 scn
+0.600 0.600 1.000 SCN
+
+BT
+81.24000000000001 450.7450000000001 Td
+/F3.0 11 Tf
+<40586d6c5472616e7369656e74> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 436.0050000000001 Td
+/F3.0 11 Tf
+<ca202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.600 0.600 1.000 scn
+0.600 0.600 1.000 SCN
+
+BT
+81.24000000000001 436.0050000000001 Td
+/F3.0 11 Tf
+<40436f6c6c656374696f6e4c61796f7574> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+174.74 436.0050000000001 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+180.24 436.0050000000001 Td
+/F3.0 11 Tf
+<64656661756c7456696577> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+240.74 436.0050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+246.24 436.0050000000001 Td
+/F3.0 11 Tf
+<3d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+251.74 436.0050000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+257.24 436.0050000000001 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+262.74 436.0050000000001 Td
+/F3.0 11 Tf
+<7461626c65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+290.24 436.0050000000001 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+295.74 436.0050000000001 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 421.2650000000001 Td
+/F3.0 11 Tf
+<ca202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.400 0.600 scn
+0.000 0.400 0.600 SCN
+
+BT
+81.24000000000001 421.2650000000001 Td
+/F3.0 11 Tf
+<7075626c6963> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+114.24000000000001 421.2650000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.467 0.533 scn
+0.000 0.467 0.533 SCN
+
+BT
+119.74000000000001 421.2650000000001 Td
+/F3.0 11 Tf
+<4c697374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+141.74 421.2650000000001 Td
+/F3.0 11 Tf
+<3c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+147.24 421.2650000000001 Td
+/F3.0 11 Tf
+<4f66666963654f7074696f6e566965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+262.74 421.2650000000001 Td
+/F3.0 11 Tf
+<3e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+268.24 421.2650000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+273.74 421.2650000000001 Td
+/F3.0 11 Tf
+<676574416d6f756e74735065724f6666696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+378.24 421.2650000000001 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+383.74 421.2650000000001 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+389.24 421.2650000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+394.74 421.2650000000001 Td
+/F3.0 11 Tf
+<7b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 406.5250000000001 Td
+/F3.0 11 Tf
+<ca20202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.467 0.533 scn
+0.000 0.467 0.533 SCN
+
+BT
+103.24000000000001 406.5250000000001 Td
+/F3.0 11 Tf
+<4c697374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+125.24000000000001 406.5250000000001 Td
+/F3.0 11 Tf
+<3c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+130.74 406.5250000000001 Td
+/F3.0 11 Tf
+<4f66666963654f7074696f6e566965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+246.24 406.5250000000001 Td
+/F3.0 11 Tf
+<3e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+251.74 406.5250000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+257.24 406.5250000000001 Td
+/F3.0 11 Tf
+<616d6f756e74735065724f6666696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+345.24 406.5250000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+350.74 406.5250000000001 Td
+/F3.0 11 Tf
+<3d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+356.24 406.5250000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.400 0.600 scn
+0.000 0.400 0.600 SCN
+
+BT
+361.74 406.5250000000001 Td
+/F3.0 11 Tf
+<6e6577> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+378.24 406.5250000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.000 0.467 0.533 scn
+0.000 0.467 0.533 SCN
+
+BT
+383.74 406.5250000000001 Td
+/F3.0 11 Tf
+<41727261794c697374> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+433.24 406.5250000000001 Td
+/F3.0 11 Tf
+<3c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+438.74 406.5250000000001 Td
+/F3.0 11 Tf
+<3e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+444.24 406.5250000000001 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+449.74 406.5250000000001 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+455.24 406.5250000000001 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 377.0450000000001 Td
+/F3.0 11 Tf
+<ca20202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+103.24000000000001 377.0450000000001 Td
+/F3.0 11 Tf
+<4f66666963654f7074696f6e566965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+218.74 377.0450000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+224.24 377.0450000000001 Td
+/F3.0 11 Tf
+<6f666669636531> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+262.74 377.0450000000001 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+268.24 377.0450000000001 Td
+/F3.0 11 Tf
+<3d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+273.74 377.0450000000001 Td
+/F3.0 11 Tf
+<20202020202020202020202020202020202020202020202020202020202020202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+477.24 377.0450000000001 Td
+/F3.1 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 362.30500000000006 Td
+/F3.0 11 Tf
+<ca2020202020202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+125.24000000000001 362.30500000000006 Td
+/F3.0 11 Tf
+<666163746f727953657276696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+202.24 362.30500000000006 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+207.74 362.30500000000006 Td
+/F3.0 11 Tf
+<696e7374616e7469617465> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+268.24 362.30500000000006 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+273.74 362.30500000000006 Td
+/F3.0 11 Tf
+<4f66666963654f7074696f6e566965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+389.24 362.30500000000006 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+394.74 362.30500000000006 Td
+/F3.0 11 Tf
+<636c617373> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+422.24 362.30500000000006 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+427.74 362.30500000000006 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 347.56500000000005 Td
+/F3.0 11 Tf
+<ca20202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+103.24000000000001 347.56500000000005 Td
+/F3.0 11 Tf
+<6f666669636531> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+141.74 347.56500000000005 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+147.24 347.56500000000005 Td
+/F3.0 11 Tf
+<7365744f6666696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+196.74 347.56500000000005 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+202.24 347.56500000000005 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+207.74 347.56500000000005 Td
+/F3.0 11 Tf
+<416d7374657264616d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.800 0.200 0.000 scn
+0.800 0.200 0.000 SCN
+
+BT
+257.24 347.56500000000005 Td
+/F3.0 11 Tf
+<22> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+262.74 347.56500000000005 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+268.24 347.56500000000005 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+273.74 347.56500000000005 Td
+/F3.0 11 Tf
+<20202020202020202020202020202020202020202020202020202020202020202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+477.24 347.56500000000005 Td
+/F3.1 11 Tf
+<23> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 332.82500000000005 Td
+/F3.0 11 Tf
+<ca20202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+103.24000000000001 332.82500000000005 Td
+/F3.0 11 Tf
+<6f666669636531> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+141.74 332.82500000000005 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+147.24 332.82500000000005 Td
+/F3.0 11 Tf
+<736574416d6f756e74> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+196.74 332.82500000000005 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 0.400 0.000 scn
+1.000 0.400 0.000 SCN
+
+BT
+202.24 332.82500000000005 Td
+/F3.0 11 Tf
+<323030> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+218.74 332.82500000000005 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+224.24 332.82500000000005 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 318.08500000000004 Td
+/F3.0 11 Tf
+<ca20202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+103.24000000000001 318.08500000000004 Td
+/F3.0 11 Tf
+<616d6f756e74735065724f6666696365> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+191.24 318.08500000000004 Td
+/F3.0 11 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+196.74 318.08500000000004 Td
+/F3.0 11 Tf
+<616464> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+213.24 318.08500000000004 Td
+/F3.0 11 Tf
+<28> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+218.74 318.08500000000004 Td
+/F3.0 11 Tf
+<6f666669636531> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+257.24 318.08500000000004 Td
+/F3.0 11 Tf
+<29> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+262.74 318.08500000000004 Td
+/F3.0 11 Tf
+<3b> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+59.24 288.605 Td
+/F3.0 11 Tf
+<ca20202020202020> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+103.24000000000001 288.605 Td
+/F3.0 11 Tf
+<4f66666963654f7074696f6e566965774d6f64656c> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+218.74 288.605 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+224.24 288.605 Td
+/F3.0 11 Tf
+<6f666669636532> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+262.74 288.605 Td
+/F3.0 11 Tf
+<20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+268.24 288.605 Td
+/F3.0 11 Tf
+<3d> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+273.74 288.605 Td
+/F3.0 11 Tf
+<20202020202020202020202020202020202020202020202020

<TRUNCATED>

[5/5] isis-site git commit: adds new images

Posted by da...@apache.org.
adds new images


Project: http://git-wip-us.apache.org/repos/asf/isis-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis-site/commit/7cfdf3b3
Tree: http://git-wip-us.apache.org/repos/asf/isis-site/tree/7cfdf3b3
Diff: http://git-wip-us.apache.org/repos/asf/isis-site/diff/7cfdf3b3

Branch: refs/heads/asf-site
Commit: 7cfdf3b3d43d3d2ca39e88f3b1865db86196dfa0
Parents: 5e75222
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Sep 15 19:30:56 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Sep 15 19:30:56 2017 +0100

----------------------------------------------------------------------
 .../ugbtb/images/hints-and-tips/view-model-fail.png | Bin 0 -> 6960 bytes
 .../images/hints-and-tips/view-model-success.png    | Bin 0 -> 7046 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis-site/blob/7cfdf3b3/content/guides/ugbtb/images/hints-and-tips/view-model-fail.png
----------------------------------------------------------------------
diff --git a/content/guides/ugbtb/images/hints-and-tips/view-model-fail.png b/content/guides/ugbtb/images/hints-and-tips/view-model-fail.png
new file mode 100644
index 0000000..57446d8
Binary files /dev/null and b/content/guides/ugbtb/images/hints-and-tips/view-model-fail.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/7cfdf3b3/content/guides/ugbtb/images/hints-and-tips/view-model-success.png
----------------------------------------------------------------------
diff --git a/content/guides/ugbtb/images/hints-and-tips/view-model-success.png b/content/guides/ugbtb/images/hints-and-tips/view-model-success.png
new file mode 100644
index 0000000..ea47a25
Binary files /dev/null and b/content/guides/ugbtb/images/hints-and-tips/view-model-success.png differ


[2/5] isis-site git commit: ISIS-1712: adds hint-n-tip for instantiating view models

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis-site/blob/5e752223/content/guides/ugbtb/ugbtb.html
----------------------------------------------------------------------
diff --git a/content/guides/ugbtb/ugbtb.html b/content/guides/ugbtb/ugbtb.html
index 1901030..73f1e99 100644
--- a/content/guides/ugbtb/ugbtb.html
+++ b/content/guides/ugbtb/ugbtb.html
@@ -1847,7 +1847,214 @@ LocalProvider localeProvider;</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugbtb_hints-and-tips_simulating-collections-of-values">4.6. Collections of values</h3>
+         <h3 id="_ugbtb_hints-and-tips_view-model-instantiation">4.6. View Model Instantiation</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_view-model-instantiation.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_view-model-instantiation.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_view-model-instantiation.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_view-model-instantiation.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_view-model-instantiation.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
+         </div> 
+         <div class="paragraph"> 
+          <p>Vith view models, some care must be taken in how they are instantiated. Specifically, it’s important that the framework doesn’t "know" about the view model until its state is "sufficiently" populated to distinguish from other view models.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>In practical terms, this means that view models should be instantiated using a constructor, and then injecting services (if required) using the <a href="../rgsvc/rgsvc.html#_rgsvc_metadata-api_ServiceRegistry"><code>ServiceRegistry</code></a> service:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="java">CustomerViewModel viewModel = <span class="keyword">new</span> CustomerViewModel(<span class="string"><span class="delimiter">"</span><span class="content">Joe</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">Bloggs</span><span class="delimiter">"</span></span>);
+serviceRegistry.injectServicesInto(viewModel);</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>What will most likely <strong>fail</strong> is to use the <a href="../rgsvc/rgsvc.html#_rgsvc_core-domain-api_FactoryService"><code>FactoryService</code></a>:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="java"><span class="comment">// DON'T DO THIS WITH VIEW MODELS</span>
+CustomerViewModel viewModel = factoryService.instantiate(CustomerViewModel.class);
+
+viewModel.setFirstName(<span class="string"><span class="delimiter">"</span><span class="content">Joe</span><span class="delimiter">"</span></span>);
+viewModel.setLastName(<span class="string"><span class="delimiter">"</span><span class="content">Bloggs</span><span class="delimiter">"</span></span>);
+serviceRegistry.injectServicesInto(viewModel);</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>That’s because the internal "OID" identifier that the framework creates to handle this view model will be incomplete. Although the framework can handle changes to the OID (when the corresponding view model’s state changes) once created, this isn’t the case during initial instantiation process.</p> 
+         </div> 
+         <div class="sect3"> 
+          <h4 id="_example">4.6.1. Example</h4> 
+          <div class="paragraph"> 
+           <p>To explain further, here’s an implementation using <code>FactoryService</code> that fails:</p> 
+          </div> 
+          <div class="listingblock"> 
+           <div class="content"> 
+            <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@XmlRootElement</span>(name = <span class="string"><span class="delimiter">"</span><span class="content">yearSummary</span><span class="delimiter">"</span></span>)
+<span class="annotation">@XmlType</span>( propOrder = { ... } )
+<span class="annotation">@XmlAccessorType</span>(XmlAccessType.FIELD)
+<span class="directive">public</span> <span class="type">class</span> <span class="class">YearSummary</span> {                                                  <i class="conum" data-value="1"></i><b>(1)</b>
+    ...
+    <span class="annotation">@XmlTransient</span>
+    <span class="annotation">@CollectionLayout</span>(defaultView = <span class="string"><span class="delimiter">"</span><span class="content">table</span><span class="delimiter">"</span></span>)
+    <span class="directive">public</span> <span class="predefined-type">List</span>&lt;OfficeOptionViewModel&gt; getAmountsPerOffice() {
+        <span class="predefined-type">List</span>&lt;OfficeOptionViewModel&gt; amountsPerOffice = <span class="keyword">new</span> <span class="predefined-type">ArrayList</span>&lt;&gt;();
+
+        OfficeOptionViewModel office1 =                                     <i class="conum" data-value="2"></i><b>(2)</b>
+            factoryService.instantiate(OfficeOptionViewModel.class);
+        office1.setOffice(<span class="string"><span class="delimiter">"</span><span class="content">Amsterdam</span><span class="delimiter">"</span></span>);                                     <i class="conum" data-value="3"></i><b>(3)</b>
+        office1.setAmount(<span class="integer">200</span>);
+        amountsPerOffice.add(office1);
+
+        OfficeOptionViewModel office2 =                                     <i class="conum" data-value="2"></i><b>(2)</b>
+            factoryService.instantiate(OfficeOptionViewModel.class);
+        office2.setOffice(<span class="string"><span class="delimiter">"</span><span class="content">London</span><span class="delimiter">"</span></span>);                                        <i class="conum" data-value="3"></i><b>(3)</b>
+        office2.setAmount(<span class="integer">100</span>);
+        amountsPerOffice.add(office2);
+
+        <span class="keyword">return</span> amountsPerOffice;
+    }
+}</code></pre> 
+           </div> 
+          </div> 
+          <div class="colist arabic"> 
+           <table> 
+            <tbody>
+             <tr> 
+              <td><i class="conum" data-value="1"></i><b>1</b></td> 
+              <td>Parent view model</td> 
+             </tr> 
+             <tr> 
+              <td><i class="conum" data-value="2"></i><b>2</b></td> 
+              <td>Using <code>FactoryService</code>, incorrectly.</td> 
+             </tr> 
+             <tr> 
+              <td><i class="conum" data-value="3"></i><b>3</b></td> 
+              <td>Hard-coded just for demo purposes</td> 
+             </tr> 
+            </tbody>
+           </table> 
+          </div> 
+          <div class="paragraph"> 
+           <p>This collection, is, confusing, rendered as:</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/hints-and-tips/view-model-fail.png"><img src="images/hints-and-tips/view-model-fail.png" alt="view model fail" width="800px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>Even though the <code>amountsPerOffice</code> collection of view models is correctly populated, the framework/viewer maps these to their corresponding OIDs before they are rendered. Because the "Amsterdam" pojo and "London" pojo each mapped to the same OID, when fetching out the results the viewer obtains the London pojo both times.</p> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The following implementation, on the other hand, succeeds:</p> 
+          </div> 
+          <div class="listingblock"> 
+           <div class="content"> 
+            <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@XmlRootElement</span>(name = <span class="string"><span class="delimiter">"</span><span class="content">yearSummary</span><span class="delimiter">"</span></span>)
+<span class="annotation">@XmlType</span>( propOrder = { ... } )
+<span class="annotation">@XmlAccessorType</span>(XmlAccessType.FIELD)
+<span class="directive">public</span> <span class="type">class</span> <span class="class">YearSummary</span> {
+    ...
+    <span class="annotation">@XmlTransient</span>
+    <span class="annotation">@CollectionLayout</span>(defaultView = <span class="string"><span class="delimiter">"</span><span class="content">table</span><span class="delimiter">"</span></span>)
+    <span class="directive">public</span> <span class="predefined-type">List</span>&lt;OfficeOptionViewModel&gt; getAmountsPerOffice() {
+        <span class="predefined-type">List</span>&lt;OfficeOptionViewModel&gt; amountsPerOffice = <span class="keyword">new</span> <span class="predefined-type">ArrayList</span>&lt;&gt;();
+
+                OfficeOptionViewModel office1 = <span class="keyword">new</span> OfficeOptionViewModel(<span class="string"><span class="delimiter">"</span><span class="content">Amsterdam</span><span class="delimiter">"</span></span>, <span class="integer">200</span>);    <i class="conum" data-value="1"></i><b>(1)</b>
+                serviceRegistry.injectServicesInto(office1);
+                amountsPerOffice.add(office1);
+
+                OfficeOptionViewModel office2 = <span class="keyword">new</span> OfficeOptionViewModel(<span class="string"><span class="delimiter">"</span><span class="content">London</span><span class="delimiter">"</span></span>, <span class="integer">100</span>);       <i class="conum" data-value="1"></i><b>(1)</b>
+                serviceRegistry.injectServicesInto(office2);
+                amountsPerOffice.add(office2);
+
+        <span class="keyword">return</span> amountsPerOffice;
+    }
+}</code></pre> 
+           </div> 
+          </div> 
+          <div class="colist arabic"> 
+           <table> 
+            <tbody>
+             <tr> 
+              <td><i class="conum" data-value="1"></i><b>1</b></td> 
+              <td>Just instantiate with constructor. The framework "sees" the domain object when services are injected into it.</td> 
+             </tr> 
+            </tbody>
+           </table> 
+          </div> 
+          <div class="paragraph"> 
+           <p>As can be seen, this renders just fine:</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/hints-and-tips/view-model-success.png"><img src="images/hints-and-tips/view-model-success.png" alt="view model success" width="800px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>To complicate matters a little, note though that following "incorrect" implementation using <code>FactoryService</code> does also work correctly:</p> 
+          </div> 
+          <div class="listingblock"> 
+           <div class="content"> 
+            <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@XmlRootElement</span>(name = <span class="string"><span class="delimiter">"</span><span class="content">yearSummary</span><span class="delimiter">"</span></span>)
+<span class="annotation">@XmlType</span>( propOrder = { ..., <span class="string"><span class="delimiter">"</span><span class="content">amountsPerOffice</span><span class="delimiter">"</span></span> } )                     <i class="conum" data-value="1"></i><b>(1)</b>
+<span class="annotation">@XmlAccessorType</span>(XmlAccessType.FIELD)
+<span class="directive">public</span> <span class="type">class</span> <span class="class">YearSummary</span> {
+        ...
+
+    void init() {
+        amountsPerOffice = calculateAmountsPerOffice();
+    }
+
+    <span class="annotation">@XmlElementWrapper</span>
+    <span class="annotation">@XmlElement</span>(name = <span class="string"><span class="delimiter">"</span><span class="content">officeOption</span><span class="delimiter">"</span></span>)
+    <span class="annotation">@CollectionLayout</span>(defaultView = <span class="string"><span class="delimiter">"</span><span class="content">table</span><span class="delimiter">"</span></span>)
+    <span class="annotation">@Getter</span> <span class="annotation">@Setter</span>
+    <span class="directive">private</span> <span class="predefined-type">List</span>&lt;OfficeOptionViewModel&gt; amountsPerOffice = Lists.newArrayList();
+
+        <span class="annotation">@XmlTransient</span>
+    <span class="annotation">@CollectionLayout</span>(defaultView = <span class="string"><span class="delimiter">"</span><span class="content">table</span><span class="delimiter">"</span></span>)
+    <span class="directive">public</span> <span class="predefined-type">List</span>&lt;OfficeOptionViewModel&gt; calculateAmountsPerOffice() {
+        <span class="predefined-type">List</span>&lt;OfficeOptionViewModel&gt; amountsPerOffice = <span class="keyword">new</span> <span class="predefined-type">ArrayList</span>&lt;&gt;();
+
+                OfficeOptionViewModel office1 = factoryService.instantiate(OfficeOptionViewModel.class);
+                office1.setOffice(<span class="string"><span class="delimiter">"</span><span class="content">Amsterdam</span><span class="delimiter">"</span></span>);
+                office1.setAmount(<span class="integer">200</span>);
+
+                amountsPerOffice.add(office1);
+
+                OfficeOptionViewModel office2 = factoryService.instantiate(OfficeOptionViewModel.class);
+                office2.setOffice(<span class="string"><span class="delimiter">"</span><span class="content">London</span><span class="delimiter">"</span></span>);
+                office2.setAmount(<span class="integer">100</span>);
+
+                amountsPerOffice.add(office2);
+
+        <span class="keyword">return</span> amountsPerOffice;
+    }
+}</code></pre> 
+           </div> 
+          </div> 
+          <div class="colist arabic"> 
+           <table> 
+            <tbody>
+             <tr> 
+              <td><i class="conum" data-value="1"></i><b>1</b></td> 
+              <td>"amountsPerOffice" is part of the state of the parent view model</td> 
+             </tr> 
+            </tbody>
+           </table> 
+          </div> 
+          <div class="paragraph"> 
+           <p>In this case the <code>amountsPerOffice</code> collection is part of the state of the parent view model and so in this particular case everything works with either <code>FactoryService#instantiate</code> or using <code>ServiceRegistry</code>.</p> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_ugbtb_hints-and-tips_simulating-collections-of-values">4.7. Collections of values</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_simulating-collections-of-values.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -1865,7 +2072,7 @@ LocalProvider localeProvider;</code></pre>
           <p>However, it is possible to simulate a bag of numbers using view models.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_view_model">4.6.1. View Model</h4> 
+          <h4 id="_view_model">4.7.1. View Model</h4> 
           <div class="admonitionblock note"> 
            <table> 
             <tbody>
@@ -1878,7 +2085,7 @@ LocalProvider localeProvider;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_persistence_concerns">4.6.2. Persistence Concerns</h4> 
+          <h4 id="_persistence_concerns">4.7.2. Persistence Concerns</h4> 
           <div class="admonitionblock note"> 
            <table> 
             <tbody>
@@ -1892,7 +2099,7 @@ LocalProvider localeProvider;</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugbtb_hints-and-tips_how-to-handle-void-and-null-results">4.7. How to handle void/null results</h3>
+         <h3 id="_ugbtb_hints-and-tips_how-to-handle-void-and-null-results">4.8. How to handle void/null results</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_how-to-handle-void-and-null-results.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -2006,7 +2213,7 @@ LocalProvider localeProvider;</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugbtb_hints-and-tips_multi-tenancy">4.8. Multi-tenancy</h3>
+         <h3 id="_ugbtb_hints-and-tips_multi-tenancy">4.9. Multi-tenancy</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_multi-tenancy.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -2025,7 +2232,7 @@ LocalProvider localeProvider;</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugbtb_hints-and-tips_subclass-properties-in-tables">4.9. Subclass properties in tables</h3>
+         <h3 id="_ugbtb_hints-and-tips_subclass-properties-in-tables">4.10. Subclass properties in tables</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_subclass-properties-in-tables.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -2091,7 +2298,7 @@ LocalProvider localeProvider;</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugbtb_hints-and-tips_pushing-changes">4.10. Pushing Changes (deprecated)</h3>
+         <h3 id="_ugbtb_hints-and-tips_pushing-changes">4.11. Pushing Changes (deprecated)</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_pushing-changes.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -2116,7 +2323,7 @@ LocalProvider localeProvider;</code></pre>
           </table> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_when_a_property_is_changed">4.10.1. When a property is changed</h4> 
+          <h4 id="_when_a_property_is_changed">4.11.1. When a property is changed</h4> 
           <div class="paragraph"> 
            <p>If you want to invoke functionality whenever a property is changed by the user, then you can create a supporting <code>modifyXxx()</code> method and include the functionality within that. The syntax is:</p> 
           </div> 
@@ -2188,7 +2395,7 @@ LocalProvider localeProvider;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_when_a_collection_is_modified">4.10.2. When a collection is modified</h4> 
+          <h4 id="_when_a_collection_is_modified">4.11.2. When a collection is modified</h4> 
           <div class="paragraph"> 
            <p>A collection may have a corresponding <code>addToXxx()</code> and/or <code>removeFromXxx()</code> method. If present, and direct manipulation of the contents of the connection has not been disabled (see ?), then they will be called (instead of adding/removing an object directly to the collection returned by the accessor).</p> 
           </div> 
@@ -2275,7 +2482,7 @@ LocalProvider localeProvider;</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugbtb_hints-and-tips_how-to-implement-a-spellchecker">4.11. How to implement a spellchecker?</h3>
+         <h3 id="_ugbtb_hints-and-tips_how-to-implement-a-spellchecker">4.12. How to implement a spellchecker?</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_how-to-implement-a-spellchecker.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>


[3/5] isis-site git commit: ISIS-1712: adds hint-n-tip for instantiating view models

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis-site/blob/5e752223/content/elasticlunr/index.json
----------------------------------------------------------------------
diff --git a/content/elasticlunr/index.json b/content/elasticlunr/index.json
index e1684e7..b8ca7ff 100644
--- a/content/elasticlunr/index.json
+++ b/content/elasticlunr/index.json
@@ -1 +1 @@
-{"version":"0.9.5","fields":["title","body","description","url"],"ref":"id","documentStore":{"docs":{"372886":{"title":"Rows, full-width cols, and tabs","url":"guides/ugvw/ugvw.html#_rows_full_width_cols_and_tabs","body":"Rows, full-width cols, and tabs  The example layout consists of three rows: a row for the object/icon, a row containing a properties, and a row containing collections. In all three cases the row contains a single column spanning the full width of the page. For the property and collection rows, the column contains a tab group.  This corresponds to the following XML:  You will notice that one of the columns has an unreferencedActions attribute, while one of the tabGroups has a similar unreferencedCollections attribute. This topic is discussed in more detail below. ","description":" The example layout consists of three rows: a row for the object/icon, a row containing a properties, and a row containing collections. In all three cases the row contains a single column s
 panning the full width of the page. For the property and collection rows, the column contains a","id":372886},"2646929":{"title":"Apache Isis vs …​","url":"guides/ugfun/ugfun.html#_ugfun_core-concepts_apache-isis-vs","body":"Apache Isis vs …​  Many other frameworks promise rapid application development and provide automatically generated user interfaces, so how do they compare to Apache Isis? ","description":" Many other frameworks promise rapid application development and provide automatically generated user interfaces, so how do they compare to Apache Isis? ","id":2646929},"3836440":{"title":"Running","url":"guides/dg/dg.html#__dg_ide_intellij_running","body":"Running  Let’s see how to run both the app and the tests. ","description":" Let’s see how to run both the app and the tests. ","id":3836440},"11600575":{"title":"Using Contributions","url":"pages/tg/tg.html#_using_contributions","body":"Using Contributions  One of Apache Isis' most powerful features is the abilit
 y for the UI to combine functionality from domain services into the representation of an entity. The effect is similar to traits or mix-ins in other languages, however the \"mixing in\" is done at runtime, within the Apache Isis metamodel. In Apache Isis' terminology, we say that the domain service action is contributed to the entity.  Any action of a domain service that has a domain entity type as one of its parameter types will (by default) be contributed. If the service action takes more than one argument, or does not have safe semantics, then it will be contributed as an entity action. If the service action has precisely one parameter type (that of the entity) and has safe semantics then it will be contributed either as a collection or as a property (dependent on whether it returns a collection of a scalar).  Why are contributions so useful? Because the service action will match not on the entity type, but also on any of the entity’s supertypes (all the way up to java.lang.Obj
 ect). That means that you can apply the dependency inversion principle to ensure that the modules of your application have acyclic dependencies; but in the UI it can still appear as if there are bidirectional dependencies between those modules. The lack of bidirectional dependencies can help save your app degrading into a big ball of mud.  Finally, note that the layout of contributed actions/collections/properties can be specified using the .layout.json file (and it is highly recommended that you do so). ","description":" One of Apache Isis' most powerful features is the ability for the UI to combine functionality from domain services into the representation of an entity. The effect is similar to traits or mix-ins in other languages, however the \"mixing in\" is done at runtime, within the Apache Isis metamodel","id":11600575},"12649581":{"title":"Mark the version as released","url":"guides/cgcom/cgcom.html#_mark_the_version_as_released","body":"Mark the version as released  In JIRA
 , go to the administration section for the Apache Isis project and update the version as being released.  In the Kanban view this will have the effect of marking all tickets as released (clearing the \"done\" column). ","description":" In JIRA, go to the administration section for the Apache Isis project and update the version as being released. ","id":12649581},"13573617":{"title":"hide…​()","url":"guides/rgcms/rgcms.html#_rgcms_methods_prefixes_hide","body":"hide…​()  The hide…​() supporting method is called for properties, collections and actions. It allows the property/collection to be completely hidden from view.  It’s comparatively rare for properties or collections to be imperatively hidden from view, but actions are sometimes hidden or shown visible (as opposed to being just disabled, ie greyed out).  The signature of the supporting method is simply:  Returning true will hide the property, collection or action, returning false leaves it visible.  For example, t
 o hide an action:  Or, to hide a property: ","description":" The hide…​() supporting method is called for properties, collections and actions. It allows the property/collection to be completely hidden from view. ","id":13573617},"14971197":{"title":"Suppressing 'remember me'","url":"guides/ugvw/ugvw.html#_ugvw_configuration-properties_suppressing-remember-me","body":"Suppressing 'remember me'  The 'remember me' checkbox on the login page can be suppressed, if required, by setting a configuration flag. ","description":" The 'remember me' checkbox on the login page can be suppressed, if required, by setting a configuration flag. ","id":14971197},"16629694":{"title":"allowLateRegistration","url":"migration-notes/migration-notes.html#__code_allowlateregistration_code","body":"allowLateRegistration  One possible issue is that (as per ISIS-830) the EventBusService is now initialized as one of the first domain services; this is to ensure that any object lifecycle events caused by domai
 n services initializing themselves can be posted on the event bus for subscribers. The typical case for such lifecycle events to occur is from domain services that seed reference data; one such example can be found in the (non-ASF) Isis addons' security module.  In previous releases, the ordering of initialization for the EventBusService was undefined (but would typically be towards the \"end\" of the list of services. What this meant in practice is that it generally didn’t matter whether (domain service) subscribers were initialized before or after seed services.  Now, though, because the EventBusService is initialized early on, it proactively checks that all subscribers have been registered before any event posts occur (so that no events get missed). If any subscriber attempts to register after at least one event has been posted, then the service will fail fast and the framework will not start. The error looks something like:  To ensure that subscriber domain services are initia
 lized before \"seed\" domain services, the @DomainServiceLayout#menuOrder() attribute can be used. Normally this attribute is just used to order UI-visible services on the menu bars, but it also is used internally to sequence the internal list of services being initialized.  Alternatively, you can disable this checking within the EventBusService using:  If you do that, be aware that not all subscribers may not receive some events generated by other domain services.  For more details, see the EventBusService man page. ","description":" One possible issue is that (as per ISIS-830) the EventBusService is now initialized as one of the first domain services; this is to ensure that any object lifecycle events caused by domain services initializing themselves can be posted on the event bus for subscribers. The typical case for such","id":16629694},"17000573":{"title":"ObjectCreatedEvent","url":"guides/rgcms/rgcms.html#_rgcms_classes_lifecycleevent_ObjectCreatedEvent","body":"ObjectCreatedE
 vent  Subclass of AbstractLifecycleEvent, broadcast when an object is first instantiated using the DomainObjectContainer's #newTransientInstance(…​) method.  ObjectCreatedEvent.Default is the concrete implementation that is used. ","description":" Subclass of AbstractLifecycleEvent, broadcast when an object is first instantiated using the DomainObjectContainer's #newTransientInstance(…​) method. ","id":17000573},"17618894":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_20","body":"New Feature ","description":"","id":17618894},"17724516":{"title":"Multi-select action parameters","url":"guides/ugfun/ugfun.html#_multi_select_action_parameters","body":"Multi-select action parameters  As well as scalar values, action parameters can also be collections. For this to be valid, a choices or autoComplete supporting method must be provided.  For example, suppose we want to \"tag\" or \"label\" an object: ","description":" As well as scalar values, action pa
 rameters can also be collections. For this to be valid, a choices or autoComplete supporting method must be provided. ","id":17724516},"18445041":{"title":"Verifying Releases","url":"downloads.html#_verifying_releases","body":"Verifying Releases ","description":"","id":18445041},"19254915":{"title":"API & Implementation","url":"guides/rgsvc/rgsvc.html#_api_implementation_7","body":"API & Implementation  The API of Scratchpad service is:  This class (o.a.i.applib.services.scratchpad.Scratchpad) is also the implementation. And, as you can see, the service is just a request-scoped wrapper around a java.util.Map. ","description":" The API of Scratchpad service is: ","id":19254915},"21190750":{"title":"Run the archetype","url":"pages/tg/tg.html#_run_the_archetype","body":"Run the archetype  Throughout this tutorial you can, if you wish, just checkout from the github repo wherever you see a \"git checkout\" note:  Run the simpleapp archetype to build an empty Isis application. With the *n
 ix bash shell, use:  Adjust as necessary if using Windows cmd.exe or Powershell.  This will generate the app in a petclinic directory. Move the contents back: ","description":" Throughout this tutorial you can, if you wish, just checkout from the github repo wherever you see a \"git checkout\" note: ","id":21190750},"21212015":{"title":"Key features","url":"pages/powered-by/powered-by.html#_key_features","body":"Key features ","description":"","id":21212015},"21857601":{"title":"Other Guides","url":"guides/cgcom/cgcom.html#_other_guides","body":"Other Guides  Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides.  The user guides available are:  The reference guides are:  The remaining guides are:  This guide provides guidance for Apache Isis' own committers. ","description":" Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides. ","id":21857601},"23125949":{"title":"Edit
 ing","url":"guides/dg/dg.html#__dg_ide_intellij_hints-and-tips_editing","body":"Editing ","description":"","id":23125949},"23524101":{"title":"Collections","url":"guides/ugvw/ugvw.html#_collections","body":"Collections  In the final row the collections are placed in tabs, simply one collection per tab. This corresponds to the following XML:  As with properties, actions can be associated with collections; this indicates that they should be rendered in the collection’s header. ","description":" In the final row the collections are placed in tabs, simply one collection per tab. This corresponds to the following XML: ","id":23524101},"26509816":{"title":"Commit changes","url":"guides/cgcom/cgcom.html#__cgcom_cutting-a-release_releasing-core_commit-changes","body":"Commit changes  Commit any changes from the preceding steps: ","description":" Commit any changes from the preceding steps: ","id":26509816},"27806498":{"title":"renderedAsDayBefore()","url":"guides/rgant/rgant.html#_rgant-P
 arameterLayout_renderedAsDayBefore","body":"renderedAsDayBefore()  The renderedAsDayBefore() attribute applies only to date parameters whereby the date will be rendered as the day before the value actually held in the domain object. It is ignored for parameters of other types. This attribute is also supported for properties.  This behaviour might at first glance appear odd, but the rationale is to support the use case of a sequence of instances that represent adjacent intervals of time. In such cases there would typically be startDate and endDate properties, eg for all of Q2. Storing this as a half-closed interval — eg [1-Apr-2015, 1-July-2015) — can substantially simplify internal algorithms; the endDate of one interval will correspond to the startDate of the next.  However, from an end-user perspective the requirement may be to render the interval as a fully closed interval; eg the end date should be shown as 30-Jun-2015.  This attribute therefore bridges the gap; it presents 
 the information in a way that makes sense to an end-user, but also stores the domain object in a way that is easy work with internally.  For example: ","description":" The renderedAsDayBefore() attribute applies only to date parameters whereby the date will be rendered as the day before the value actually held in the domain object. It is ignored for parameters of other types. This attribute is also supported for properties. ","id":27806498},"31857620":{"title":"Interacting with the services","url":"guides/rgsvc/rgsvc.html#_interacting_with_the_services","body":"Interacting with the services  Typically domain objects will have little need to interact with the CommandContext and Command directly; what is more useful is that these are persisted in support of the various use cases identified above.  One case however where a domain object might want to obtain the Command is to determine whether it has been invoked in the foreground, or in the background. It can do this using the getExecu
 tedIn() method:  Although not often needed, this then allows the domain object to access the Command object through the CommandContext service. To expand th above example:  If run in the background, it might then notify the user (eg by email) if all work is done.  This leads us onto a related point, distinguishing the current effective user vs the originating \"real\" user. When running in the foreground, the current user can be obtained from the UserService, using:  If running in the background, however, then the current user will be the credentials of the background process, for example as run by a Quartz scheduler job.  The domain object can still obtain the original (\"effective\") user that caused the job to be created, using: ","description":" Typically domain objects will have little need to interact with the CommandContext and Command directly; what is more useful is that these are persisted in support of the various use cases identified above. ","id":31857620},"36734123":{"
 title":"Bug","url":"release-notes/release-notes.html#_bug_8","body":"Bug ","description":"","id":36734123},"39248326":{"title":"Runtime vs Noop implementation","url":"guides/rgfis/rgfis.html#_runtime_vs_noop_implementation","body":"Runtime vs Noop implementation  The framework provides two implementations:  The …​Default implementation takes priority over the …​Noop implementation. ","description":" The framework provides two implementations: ","id":39248326},"39290887":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_implementation_22","body":"Implementation  The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.container.DomainObjectContainerDefault). ","description":" The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.container.DomainObjectContainerDefault). ","id":39290887},"42240053":{"title":"Screenshots","url":"guides/ugvw/ugvw.html#_screenshots_9","body":"Screensho
 ts  The screenshot below shows the Isis addons example todoapp (not ASF) with a 'brand logo' image in its header:  A custom brand logo (typically larger) can also be specified for the signin page: ","description":" The screenshot below shows the Isis addons example todoapp (not ASF) with a 'brand logo' image in its header: ","id":42240053},"44483327":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_17","body":"New Feature ","description":"","id":44483327},"45128293":{"title":"getConfigurationProperties()","url":"guides/rgcms/rgcms.html#__rgcms_classes_AppManifest-bootstrapping_api_getConfigurationProperties","body":"getConfigurationProperties()  This method allow arbitrary other configuration properties to be overridden. One common use case is in conjunction with the getFixtures() method, discussed above: ","description":" This method allow arbitrary other configuration properties to be overridden. One common use case is in conjunction with the getFixtures
 () method, discussed above: ","id":45128293},"57327287":{"title":"cssClassFa()","url":"guides/rgant/rgant.html#_rgant-ViewModelLayout_cssClassFa","body":"cssClassFa()  The cssClassFa() attribute is used to specify the name of a Font Awesome icon name, to be rendered as the domain object’s icon.  These attribute can also be applied to domain objects to specify the object’s icon, and to actions to specify an icon for the action’s representation as a button or menu item.  If necessary the icon specified can be overridden by a particular object instance using the iconName() method.  For example:  There can be multiple \"fa-\" classes, eg to mirror or rotate the icon. There is no need to include the mandatory fa \"marker\" CSS class; it will be automatically added to the list. The fa- prefix can also be omitted from the class names; it will be prepended to each if required.  The related cssClassFaPosition() attribute is currently unused for domain objects; the icon is always render
 ed to the left. ","description":" The cssClassFa() attribute is used to specify the name of a Font Awesome icon name, to be rendered as the domain object’s icon. ","id":57327287},"64932464":{"title":"Other Guides","url":"guides/ugtst/ugtst.html#_other_guides","body":"Other Guides  Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides.  The user guides available are:  The reference guides are:  The remaining guides are: ","description":" Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides. ","id":64932464},"66604001":{"title":"@Programmatic","url":"guides/rgant/rgant.html#_rgant-Programmatic","body":"@Programmatic ","description":"","id":66604001},"68441589":{"title":"License headers","url":"guides/cgcom/cgcom.html#__cgcom_cutting-a-release_releasing-core_license-headers","body":"License headers  The Apache Release Audit Tool RAT (from the Apache Creadur project) checks
  for missing license header files. The parent pom.xml of each releasable module specifies the RAT Maven plugin, with a number of custom exclusions.  To run the RAT tool, use:  where rat.numUnapprovedLicenses property is set to a high figure, temporarily overriding the default value of 0. This will allow the command to run over all submodules, rather than failing after the first one. The command writes out a target\\rat.txt for each submodule. missing license notes are indicated using the key !???. The for command collates all the errors.  Investigate and fix any reported violations, typically by either:  To add missing headers, use the groovy script addmissinglicenses.groovy (in the scripts directory) to automatically insert missing headers for certain file types. The actual files checked are those with extensions specified in the line def fileEndings = [\".java\", \".htm\"]:  (If the -x is omitted then the script is run in \"dry run\" mode). Once you’ve fixed all issues, confirm 
 once more that apache-rat-plugin no longer reports any license violations, this time leaving the rat.numUnapprovedLicenses property to its default, 0: ","description":" The Apache Release Audit Tool RAT (from the Apache Creadur project) checks for missing license header files. The parent pom.xml of each releasable module specifies the RAT Maven plugin, with a number of custom exclusions. ","id":68441589},"73703450":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_29","body":"New Feature ","description":"","id":73703450},"75054401":{"title":"Supporting Method Prefixes","url":"guides/rgcms/rgcms.html#_rgcms_methods_prefixes","body":"Supporting Method Prefixes  Supporting methods are those that are associated with properties, collections and actions, providing additional imperative business rule checking and behaviour to be performed when the user interacts with those object members.  This association is performed by name matching. Thus, a property called \"f
 irstName\", derived from a method getFirstName() may have supporting methods hideFirstName(), disableFirstName() and validateFirstName(). Supporting methods are, therefore, each characterized by their own particular prefix.  The table below lists the method prefixes that are recognized as part of Apache Isis' default programming model. ","description":" Supporting methods are those that are associated with properties, collections and actions, providing additional imperative business rule checking and behaviour to be performed when the user interacts with those object members. ","id":75054401},"77231561":{"title":"Interaction Execution","url":"guides/rgcms/rgcms.html#_rgcms_schema-ixn","body":"Interaction Execution  The interaction (\"ixn\") schema defines the serialized form of an action invocation or a property edit. In fact, it actually defines a call-graph of such executions for those cases where the WrapperFactory is used to execute sub-actions/property edits.  Each execution id
 entifies the target object, the member to invoke, and the arguments. It also captures metrics about the execution, and the result of the execution (eg return value of an action invocation). ","description":" The interaction (\"ixn\") schema defines the serialized form of an action invocation or a property edit. In fact, it actually defines a call-graph of such executions for those cases where the WrapperFactory is used to execute sub-actions/property edits. ","id":77231561},"78112488":{"title":"Screencast","url":"guides/ugvw/ugvw.html#_screencast","body":"Screencast  This screencast describes the feature. ","description":" This screencast describes the feature. ","id":78112488},"78624086":{"title":"Other Guides","url":"guides/ugsec/ugsec.html#_other_guides","body":"Other Guides  Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides.  The user guides available are:  The reference guides are:  The remaining guides are: ","descrip
 tion":" Apache Isis documentation is broken out into a number of user, reference and \"supporting procedures\" guides. ","id":78624086},"80534397":{"title":"ContentMappingService","url":"guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_ContentMappingService","body":"ContentMappingService  The ContentMappingService supports the (default implementation of the) ContentNegotiationService enabling the RestfulObjects viewer to represent domain objects in some other format as specified by the HTTP Accept header.  See ContentNegotiationService for further discussion. ","description":" The ContentMappingService supports the (default implementation of the) ContentNegotiationService enabling the RestfulObjects viewer to represent domain objects in some other format as specified by the HTTP Accept header. ","id":80534397},"83803344":{"title":"MessageService","url":"guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_MessageService","body":"MessageService  The MessageService allows domain 
 objects to raise information, warning or error messages. These messages can either be simple strings, or can be translated. ","description":" The MessageService allows domain objects to raise information, warning or error messages. These messages can either be simple strings, or can be translated. ","id":83803344},"83933647":{"title":"Persistence Concerns","url":"guides/ugbtb/ugbtb.html#_persistence_concerns","body":"Persistence Concerns ","description":"","id":83933647},"85931482":{"title":"Task","url":"release-notes/release-notes.html#_task_24","body":"Task ","description":"","id":85931482},"87271564":{"title":"2004:","url":"pages/articles-and-presentations/articles-and-presentations.html#_2004","body":"2004: ","description":"","id":87271564},"90561824":{"title":"Wicket Viewer","url":"release-notes/release-notes.html#_wicket_viewer_8","body":"Wicket Viewer ","description":"","id":90561824},"90935214":{"title":"Wicket Viewer","url":"release-notes/release-notes.html#_wicket_viewer_1
 0","body":"Wicket Viewer ","description":"","id":90935214},"91902412":{"title":"The issue in more detail","url":"guides/ugodn/ugodn.html#_the_issue_in_more_detail","body":"The issue in more detail  Consider these entities (yuml.me/b8681268):  In the course of a transaction, the Agreement entity is loaded into memory (not necessarily modified), and then new AgreementRoles are associated to it.  All these entities implement Comparable using ObjectContracts, and the implementation of AgreementRole's (simplified) is:  while Agreement's is implemented as:  and Party's is similarly implemented as:  DataNucleus’s persistence-by-reachability algorithm adds the AgreementRole instances into a SortedSet, which causes AgreementRole#compareTo() to fire:  In other words, in figuring out whether AgreementRole requires the persistence-by-reachability algorithm to run, it causes the adjacent associated entity Party to also be retrieved. ","description":" Consider these entities (yuml.me/b8681268):
  ","id":91902412},"92467660":{"title":"API and Usage","url":"guides/ugtst/ugtst.html#_ugtst_fixture-scripts_api-and-usage","body":"API and Usage  There are two parts to using fixture scripts: the FixtureScripts domain service class, and the FixtureScript view model class:  Let’s look at FixtureScripts domain service in more detail first. ","description":" There are two parts to using fixture scripts: the FixtureScripts domain service class, and the FixtureScript view model class: ","id":92467660},"95725933":{"title":"Appendix: Isis Add-ons (not ASF)","url":"guides/ugvw/ugvw.html#_ugvw_isis-addons","body":"Appendix: Isis Add-ons (not ASF) ","description":"","id":95725933},"96583162":{"title":"Configure toolchains plugin","url":"guides/cgcom/cgcom.html#_configure_toolchains_plugin","body":"Configure toolchains plugin  Apache Isis releases are built using Java 7, enforced using the maven toolchains plugin. Ensure that Java 7 is installed and the toolchains plugin is configured, as de
 scribed in the contributors' guide. ","description":" Apache Isis releases are built using Java 7, enforced using the maven toolchains plugin. Ensure that Java 7 is installed and the toolchains plugin is configured, as described in the contributors' guide. ","id":96583162},"99090360":{"title":"Running the App","url":"guides/ugfun/ugfun.html#__ugfun_getting-started_simpleapp-archetype_running-the-app","body":"Running the App  The simpleapp archetype generates a single WAR file, configured to run both the Wicket viewer and the Restful Objects viewer. The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.  Once you’ve built the app, you can run the WAR in a variety of ways. ","description":" The simpleapp archetype generates a single WAR file, configured to run both the Wicket viewer and the Restful Objects viewer. The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection. ","id":99090360},"100682
 258":{"title":"Update dependencies","url":"guides/cgcom/cgcom.html#_update_dependencies","body":"Update dependencies  With the release complete, now is a good time to bump versions of dependencies (so that there is a full release cycle to identify any possible issues).  You will probably want to create a new JIRA ticket for these updates (or if minor then use the \"catch-all\" JIRA ticket raised earlier for the next release). ","description":" With the release complete, now is a good time to bump versions of dependencies (so that there is a full release cycle to identify any possible issues). ","id":100682258},"102347041":{"title":"Bug","url":"release-notes/release-notes.html#_bug_10","body":"Bug ","description":"","id":102347041},"104167755":{"title":"How to implement a spellchecker?","url":"guides/ugbtb/ugbtb.html#_ugbtb_hints-and-tips_how-to-implement-a-spellchecker","body":"How to implement a spellchecker?  From this thread on the Apache Isis users mailing list:  One way to impl
 ement is to use the event bus:  if if the change is made through an edit, you can use @Property#domainEvent().  You’ll need some way to know which fields should be spell checked. Two ways spring to mind:  And you’ll (obviously) also need some sort of spell checker implementation to call. ","description":" From this thread on the Apache Isis users mailing list: ","id":104167755},"105480253":{"title":"Visitor","url":"guides/ugbtb/ugbtb.html#__code_visitor_code","body":"Visitor  More often than not, you’ll want to visit every element in the metamodel, and so for this you can instead subclass from MetaModelValidatorVisiting.Visitor:  You can then create your custom validator by subclassing MetaModelValidatorComposite and adding the visiting validator:  If you have more than one rule then each can live in its own visitor. ","description":" More often than not, you’ll want to visit every element in the metamodel, and so for this you can instead subclass from MetaModelValidatorVisi
 ting.Visitor: ","id":105480253},"106558909":{"title":"contributedAs()","url":"guides/rgant/rgant.html#_rgant-ActionLayout_contributedAs","body":"contributedAs()  For a domain service action that can be contributed, the contributedAs() attribute determines how it is contributed: as an action or as an association (ie a property or collection).  The distinction between property or collection is automatic: if the action returns a java.util.Collection (or subtype) then the action is contributed as a collection; otherwise it is contributed as a property.  For a domain service action to be contributed, the domain services must have a nature nature of either VIEW or VIEW_CONTRIBUTIONS_ONLY, and the action must have safe action semantics, and takes a single argument, namely the contributee domain object.  For example:  It’s also possible to use the attribute to suppress the action completely:  In such cases, though, it would probably make more sense to annotate the action as either hidden 
 or indeed @Programmatic. ","description":" For a domain service action that can be contributed, the contributedAs() attribute determines how it is contributed: as an action or as an association (ie a property or collection). ","id":106558909},"106606865":{"title":"Using the Wicket Viewer","url":"guides/rgcfg/rgcfg.html#_using_the_wicket_viewer","body":"Using the Wicket Viewer  Most of the you’re likely to run Apache Isis using the Wicket viewer. In this case Apache Isis' \"deployment type\" concept maps to Wicket’s \"configuration\" concept:  Wicket’s mechanism for specifying the \"configuration\" is to use a context parameter in web.xml; Apache Isis automatically infers its own deployment type from this. In other words: ","description":" Most of the you’re likely to run Apache Isis using the Wicket viewer. In this case Apache Isis' \"deployment type\" concept maps to Wicket’s \"configuration\" concept: ","id":106606865},"108721033":{"title":"Incode Catalog","url":"guides/
 ugfun/ugfun.html#_ugfun_available-domain-services_incode-catalog","body":"Incode Catalog  The Incode Catalog website also provides a number of reusable modules, focusing on business logic for generic subdomains.  This section surveys the functionality available.  The modules themselves fall into a number of broader groups:  Each of the modules has a full README and demo application demonstrating their usage. The sections below briefly outline the capabilities of these modules. ","description":" The Incode Catalog website also provides a number of reusable modules, focusing on business logic for generic subdomains. ","id":108721033},"108815435":{"title":"unchanging()","url":"guides/rgant/rgant.html#_rgant-PropertyLayout_unchanging","body":"unchanging()  The unchanging() attribute is used to indicate that the value held by the property never changes over time, even when other properties of the object do change.  Setting this attribute to true is used as a hint to the viewer to not red
 raw the property after an AJAX update of some other property/ies of the object have changed. This is primarily for performance, eg can improve the user experience when rendering PDFs/blobs.  Note that for this to work, the viewer will also ensure that none of the property’s parent component (such as a tab group panel) are re-rendered.  For example: ","description":" The unchanging() attribute is used to indicate that the value held by the property never changes over time, even when other properties of the object do change. ","id":108815435},"109833874":{"title":"Persistable","url":"guides/rgcms/rgcms.html#_rgcms_classes_mixins_Persistable","body":"Persistable  All domain entities automatically implement the DataNucleus Persistable role interface as a result of the enhancer process (the fully qualified class name is org.datanucleus.enhancement.Persistable). So as a developer you do not need to write any code to obtain the mixins that contribute to this interface. ","description":" 
 All domain entities automatically implement the DataNucleus Persistable role interface as a result of the enhancer process (the fully qualified class name is org.datanucleus.enhancement.Persistable). So as a developer you do not need to write any code to obtain the mixins that contribute to this interface. ","id":109833874},"112375674":{"title":"Auditing","url":"migration-notes/migration-notes.html#_auditing","body":"Auditing  The AuditingService SPI service has been deprecated, instead replaced by the AuditerService.  There can be more than one implementation of this new SPI, and a framework-provided implementation (AuditerServiceLogging) will log to a file. The (non-ASF) Isis addons' audit module also implements the new SPI. ","description":" The AuditingService SPI service has been deprecated, instead replaced by the AuditerService. ","id":112375674},"114685873":{"title":"Usage","url":"guides/rgsvc/rgsvc.html#_usage_19","body":"Usage  To indicate that an action invocation should 
 be published, annotate it with the @Action#publishing() annotation.  To indicate that an property edit should be published, annotate it with the @Property#publishing() annotation.  To indicate that a changed object should be published is to annotate it with the @DomainObject#publishing() annotation. ","description":" To indicate that an action invocation should be published, annotate it with the @Action#publishing() annotation. ","id":114685873},"115229271":{"title":"Domain Entities","url":"guides/ugfun/ugfun.html#_ugfun_programming-model_domain-entities","body":"Domain Entities  Entities are persistent domain objects, with their persistence handled by JDO/DataNucleus. As such, they are mapped to a persistent object store, typically an RDBMS, with DataNucleus taking care of both lazy loading and also the persisting of modified (\"dirty\") objects.  Domain entities are generally decorated with both DataNucleus and Apache Isis annotations. Let’s look at some of the most commonly-use
 d annotations.  To start with, entities are flagged as being \"persistence capable\", indicating how JDO/DataNucleus should manage their identity:  All domain entities will have some sort of mandatory key properties. The example below is a very simple case, where the entity is identified by a name property:  It’s also common for domain entities to have queries annotated on them. These are used by repository domain services to query for instances of the entity:  DataNucleus provides several APIs for defining queries, including entirely programmatic and type-safe APIs; but JDOQL is very similar to SQL and so easily learnt.  The corresponding repository method for the above query is: ","description":" Entities are persistent domain objects, with their persistence handled by JDO/DataNucleus. As such, they are mapped to a persistent object store, typically an RDBMS, with DataNucleus taking care of both lazy loading and also the persisting of modified (\"dirty\") objects. ","id":1152292
 71},"117553409":{"title":"Object Icon","url":"guides/ugfun/ugfun.html#_object_icon","body":"Object Icon  The icon is often the same for all instances of a particular class, and is picked up by convention.  It’s is also possible for an individual instance to return a custom icon, typically so that some significant state of that domain object is represented. For example, a custom icon could be used to represent a shipped order, say, or an overdue library loan. ","description":" The icon is often the same for all instances of a particular class, and is picked up by convention. ","id":117553409},"121574190":{"title":"Related Services","url":"guides/rgsvc/rgsvc.html#_related_services_18","body":"Related Services  The ActionInteractionContext service allows bulk actions to co-ordinate with each other.  The QueryResultsCache is useful for caching the results of expensive method calls. ","description":" The ActionInteractionContext service allows bulk actions to co-ordinate with each othe
 r. ","id":121574190},"121879267":{"title":"Wicket Viewer","url":"release-notes/release-notes.html#_wicket_viewer_2","body":"Wicket Viewer ","description":"","id":121879267},"122762699":{"title":"Contributee","url":"guides/rgcms/rgcms.html#_rgcms_classes_contributee","body":"Contributee  The interfaces listed in this chapter act as contributees; they allow domain services to contribute actions/properties/collections to any domain objects that implement these interfaces. ","description":" The interfaces listed in this chapter act as contributees; they allow domain services to contribute actions/properties/collections to any domain objects that implement these interfaces. ","id":122762699},"125299345":{"title":"Example","url":"guides/rgant/rgant.html#_example_2","body":"Example  This example is taken from the (non-ASF) Isis addons' todoapp: ","description":" This example is taken from the (non-ASF) Isis addons' todoapp: ","id":125299345},"125961908":{"title":"Do it!","url":"pages/tg/tg
 .html#_do_it","body":"Do it! ","description":"","id":125961908},"134804772":{"title":"How to handle void/null results","url":"guides/ugbtb/ugbtb.html#_ugbtb_hints-and-tips_how-to-handle-void-and-null-results","body":"How to handle void/null results  From this thread on the Apache Isis users mailing list:  One way to implement this idea is to provide a custom implementation of the RoutingService SPI domain service. The default implementation will either return the current object (if not null), else the home page (as defined by @HomePage) if one exists.  The following custom implementation refines this to use the breadcrumbs (available in the Wicket viewer) to return the first non-deleted domain object found in the list of breadcrumbs:  Note that the above implementation uses Java 8, so if you are using Java 7 then you’ll need to backport accordingly. ","description":" From this thread on the Apache Isis users mailing list: ","id":134804772},"140760147":{"title":"Isis Add-on modules
 ","url":"guides/ugvw/ugvw.html#_isis_add_on_modules","body":"Isis Add-on modules  Some of the (non-ASF) Isis Addons modules also provide services whose actions appear in top-level menus.  The security's module places its domain service menus in three top-level menus:  Meanwhile the devutils module places its actions - to download layouts and so forth - on a \"Prototyping\" top-level menu, on the SECONDARY menu bar.  Currently there is no facility to alter the placement of these services. However, their UI can be suppressed using security or using a vetoing subscriber. ","description":" Some of the (non-ASF) Isis Addons modules also provide services whose actions appear in top-level menus. ","id":140760147},"145340696":{"title":"Registering the Services","url":"guides/rgsvc/rgsvc.html#_registering_the_services_20","body":"Registering the Services  The (non-ASF) Isis addons' audit module provides an implementation of this service (AuditingService), and also provides a number of relate
 d domain services (AuditingServiceMenu, AuditingServiceRepository and AuditingServiceContributions).  Assuming that an AppManifest is being used to bootstrap the app) then this can be activated by updating the pom.xml and updating the AppManifest#getModules() method.  If menu items or contributions are not required in the UI, these can be suppressed either using security or by implementing a vetoing subscriber. ","description":" The (non-ASF) Isis addons' audit module provides an implementation of this service (AuditingService), and also provides a number of related domain services (AuditingServiceMenu, AuditingServiceRepository and AuditingServiceContributions). ","id":145340696},"148135206":{"title":"Layout Metadata Reader (deprecated)","url":"guides/ugbtb/ugbtb.html#_ugbtb_programming-model_layout-metadata-reader","body":"Layout Metadata Reader (deprecated)  The metadata for domain objects is obtained both annotations and files. There is also deprecated support for reading layout
 s from .layout.json files. This service provides an SPI (and default implementation) for reading layouts defined in this fashion. ","description":" The metadata for domain objects is obtained both annotations and files. There is also deprecated support for reading layouts from .layout.json files. This service provides an SPI (and default implementation) for reading layouts defined in this fashion. ","id":148135206},"153666205":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_implementation_17","body":"Implementation  The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.title.TitleServiceDefault). ","description":" The core framework provides a default implementation of this service (o.a.i.core.metamodel.services.title.TitleServiceDefault). ","id":153666205},"155655500":{"title":"@PrimaryKey (javax.jdo)","url":"guides/rgant/rgant.html#_rgant-PrimaryKey","body":"@PrimaryKey (javax.jdo) ","description":"","id":155655500},"15803341
 2":{"title":"SPI","url":"guides/rgsvc/rgsvc.html#_spi_27","body":"SPI  The SPI defined by the service is: ","description":" The SPI defined by the service is: ","id":158033412},"158069558":{"title":"Usability: Defaults","url":"pages/tg/tg.html#_usability_defaults","body":"Usability: Defaults  Quick detour: often we want to set up defaults to go with choices. Sensible defaults for action parameters can really improve the usability of the app. ","description":" Quick detour: often we want to set up defaults to go with choices. Sensible defaults for action parameters can really improve the usability of the app. ","id":158069558},"158897592":{"title":"Refactoring","url":"guides/dg/dg.html#__dg_ide_intellij_hints-and-tips_refactoring","body":"Refactoring  Loads of good stuff on the Refactor menu; most used are:  If you can’t remember all those shortcuts, just use ctrl-shift-alt-T (might want to rebind that to something else!) and get a context-sensitive list of refactorings available f
 or the currently selected object ","description":" Loads of good stuff on the Refactor menu; most used are: ","id":158897592},"159072030":{"title":"(non-ASF) Incode Platform","url":"migration-notes/migration-notes.html#_migration-notes_1.14.0-to-1.15.0_incode-platform","body":"(non-ASF) Incode Platform  (work in progress) The supporting (non-ASF) Isis Addons and Incode Catalog have also been reorganised into a single \"Incode Platform\".  While each module can still be consumed individually, the new platform versions consistently (a change in any one module will result in a re-release of all). This should make these modules easier to consume, and easier to maintain/develop.  All the modules remain open source, still licensed under the ASF v2.0 license.  As of this release, none of the groupIds or artifactIds have changed. They will be rationalized/made consistent in a future release; most probably to coincide with v2.0.0 of the framework. ","description":" (work in progress) The sup
 porting (non-ASF) Isis Addons and Incode Catalog have also been reorganised into a single \"Incode Platform\". ","id":159072030},"160872749":{"title":"Related Services","url":"guides/rgfis/rgfis.html#_related_services","body":"Related Services  The default implementation of ContentNegotiationService delegates to ContentMappingService (if present) to convert domain entities into a stable form (eg DTO).  The ContentNegotiationService is itself called by the (default implementation of) RepresentationService. ","description":" The default implementation of ContentNegotiationService delegates to ContentMappingService (if present) to convert domain entities into a stable form (eg DTO). ","id":160872749},"163456888":{"title":"Dependency upgrade","url":"release-notes/release-notes.html#_dependency_upgrade_9","body":"Dependency upgrade ","description":"","id":163456888},"163915714":{"title":"web.xml","url":"migration-notes/migration-notes.html#_web_xml","body":"web.xml  In the web.xml, the \
 "isis.viewers\" context-param is now ignored. Instead the viewer_wicket.properties and viewer_restfulobjects.properties will both be loaded if present (but neither need be present). ","description":" In the web.xml, the \"isis.viewers\" context-param is now ignored. Instead the viewer_wicket.properties and viewer_restfulobjects.properties will both be loaded if present (but neither need be present). ","id":163915714},"165602306":{"title":"GridLoaderService","url":"guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_GridLoaderService","body":"GridLoaderService  The GridLoaderService provides the ability to load the XML layout (grid) for a domain class. ","description":" The GridLoaderService provides the ability to load the XML layout (grid) for a domain class. ","id":165602306},"165750333":{"title":"loaded()","url":"guides/rgcms/rgcms.html#_rgcms_methods_lifecycle_loaded","body":"loaded()  The loaded() lifecycle callback method is called when a (persistent) object has just been lo
 aded from the object store. ","description":" The loaded() lifecycle callback method is called when a (persistent) object has just been loaded from the object store. ","id":165750333},"166045728":{"title":"Sanity Check","url":"guides/cgcom/cgcom.html#_sanity_check_2","body":"Sanity Check  Ensure that the framework builds ok using the same command that your CI server is set up to execute (see section above). ","description":" Ensure that the framework builds ok using the same command that your CI server is set up to execute (see section above). ","id":166045728},"166899251":{"title":"Installing and Setting up","url":"guides/dg/dg.html#__dg_ide_intellij_installing","body":"Installing and Setting up  This section covers installation and setup. These notes/screenshots were prepared using IntelliJ Community Edition 14.1.x, but are believed to be compatible with more recent versions/other editions of the IDE. ","description":" This section covers installation and setup. These notes/screen
 shots were prepared using IntelliJ Community Edition 14.1.x, but are believed to be compatible with more recent versions/other editions of the IDE. ","id":166899251},"167039338":{"title":"Task","url":"release-notes/release-notes.html#_task_14","body":"Task ","description":"","id":167039338},"169081251":{"title":"Interaction","url":"guides/rgsvc/rgsvc.html#__code_interaction_code","body":"Interaction  The public API of the Interaction class consists of:  This class is concrete (is also the implementation). ","description":" The public API of the Interaction class consists of: ","id":169081251},"174738887":{"title":"Related functionality","url":"guides/ugvw/ugvw.html#_related_functionality_2","body":"Related functionality  The Recent Pages also lists recently visited pages, selected from a drop-down. ","description":" The Recent Pages also lists recently visited pages, selected from a drop-down. ","id":174738887},"175028546":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_im
 plementation_5","body":"Implementation  The framework provides a default implementation of this service, namely GridServiceDefault. ","description":" The framework provides a default implementation of this service, namely GridServiceDefault. ","id":175028546},"175197970":{"title":"Performance tuning","url":"pages/tg/tg.html#_performance_tuning","body":"Performance tuning  The QueryResultsCache (request-scoped) domain service allows arbitrary objects to be cached for the duration of a request.  This can be helpful for \"naive\" code which would normally make the same query within a loop. ","description":" The QueryResultsCache (request-scoped) domain service allows arbitrary objects to be cached for the duration of a request. ","id":175197970},"175636232":{"title":"RepositoryService","url":"guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-api_RepositoryService","body":"RepositoryService  The RepositoryService collects together methods for creating, persisting and searching for entiti
 es from the underlying persistence store. It acts as an abstraction over the JDO/DataNucleus objectstore.  You can use it during prototyping to write naive queries (find all rows, then filter using the Guava Predicate API, or you can use it to call JDO named queries using JDOQL.  As an alternative, you could also use JDO typesafe queries through the IsisJdoSupport service. ","description":" The RepositoryService collects together methods for creating, persisting and searching for entities from the underlying persistence store. It acts as an abstraction over the JDO/DataNucleus objectstore. ","id":175636232},"176767338":{"title":"Command and Events","url":"guides/rgsvc/rgsvc.html#__rgsvc_intro_commands-and-events","body":"Command and Events  A good number of the domain services manage the execution of action invocations/property edits, along with the state of domain objects that are modified as a result of these. These services capture information which can then be used for various p
 urposes, most notably for auditing or for publishing events, or for deferring execution such that the execution be performed in the background at some later date.  The diagram below shows how these services fit together. The outline boxes are services while the coloured boxes represent data structures - defined in the applib and therefore accessible to domain applications - which hold various information about the executions.  To explain:  Implementations of CommandService can use the Command#getMemento() method to obtain a XML equivalent of that Command, reified using the cmd.xsd schema. This can be converted back into a CommandDto using the CommandDtoUtils utility class (part of the applib).  Similarly, implementations of PublisherService can use the InteractionDtoUtils utility class to obtain a InteractionDto representing the interaction, either just for a single execution or for the entire call-graph. This can be converted into XML in a similar fashion.  Likewise, the PublishedO
 bjects class passed to the PublisherService at the end of the interaction provides the PublishedObjects#getDto() method which returns a ChangesDto instance. This can be converted into XML using the ChangesDtoUtils utility class.  One final point: multiple PublisherService implementations are supported because different implementations may have different responsibilities. For example, the (non-ASF) Isis addons' publishmq module is responsible for publishing messages onto an ActiveMQ event bus, for inter-system communication. However, the SPI can also be used for profiling; each execution within the call-graph contains metrics of the number of objects loaded or modified as a result of that execution, and thus could be used for application profiling. The framework provides a default PublisherServiceLogging implementation that logs this using SLF4J. ","description":" A good number of the domain services manage the execution of action invocations/property edits, along with the state of d
 omain objects that are modified as a result of these. These services capture information which can then be used for various purposes, most notably for auditing or for publishing events","id":176767338},"178125062":{"title":"domainEvent()","url":"guides/rgant/rgant.html#_rgant-Action_domainEvent","body":"domainEvent()  Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events for every property, collection and action of the domain object. In the cases of the domain object’s actions, the events that are fired are:  Subscribers subscribe through the EventBusService using either Guava or Axon Framework annotations and can influence each of these phases.  By default the event raised is ActionDomainEvent.Default. For example:  The domainEvent() attribute allows a custom subclass to be emitted allowing more precise subscriptions (to those subclasses) to be defined instead. This attribute is also supported for collections and pr
 operties.  For example:  The benefit is that subscribers can be more targeted as to the events that they subscribe to. ","description":" Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events for every property, collection and action of the domain object. In the cases of the domain object’s actions, the events that are fired are: ","id":178125062},"180783343":{"title":"TranslatableException","url":"guides/ugbtb/ugbtb.html#__code_translatableexception_code","body":"TranslatableException  Another mechanism by which messages can be rendered to the user are as the result of exception messages thrown and recognized by an ExceptionRecognizer.  In this case, if the exception implements TranslatableException, then the message will automatically be translated before being rendered. The TranslatableException itself takes the form: ","description":" Another mechanism by which messages can be rendered to the user are as the resul
 t of exception messages thrown and recognized by an ExceptionRecognizer. ","id":180783343},"183226640":{"title":"updatedLifecycleEvent()","url":"guides/rgant/rgant.html#_rgant-DomainObject_updatedLifecycleEvent","body":"updatedLifecycleEvent()  Whenever a (persistent) domain object has been modified and has been updated in the database, an \"updated\" lifecycle event is fired.  Subscribers subscribe through the EventBusService and can use the event to obtain a reference to the domain object.  By default the event raised is ObjectUpdatedEvent.Default. For example:  The purpose of the updatedLifecycleEvent() attribute is to allows a custom subclass to be emitted instead. A similar attribute is available for other lifecycle events.  For example:  The benefit is that subscribers can be more targeted as to the events that they subscribe to. ","description":" Whenever a (persistent) domain object has been modified and has been updated in the database, an \"updated\" lifecycle event is fir
 ed. ","id":183226640},"188123644":{"title":"2013","url":"pages/articles-and-presentations/articles-and-presentations.html#_2013","body":"2013 ","description":"","id":188123644},"189180810":{"title":"HoldsUpdatedAt","url":"guides/rgcms/rgcms.html#_rgcms_classes_roles_HoldsUpdatedAt","body":"HoldsUpdatedAt  The HoldsUpdatedAt role interface allows the (framework-provided) TimestampService to update each object with the current timestamp whenever it is modified in a transaction.  The interface is defined as:  The current time is obtained from the ClockService.  Entities that implement this interface often also implement HoldsUpdatedBy role interface; as a convenience the Timestampable interface combines the two roles. ","description":" The HoldsUpdatedAt role interface allows the (framework-provided) TimestampService to update each object with the current timestamp whenever it is modified in a transaction. ","id":189180810},"191180113":{"title":"persistence.xml","url":"guides/ugodn/ugo
 dn.html#_ugodn_configuring_persistence-xml","body":"persistence.xml  DataNucleus will for itself also and read the META-INF/persistence.xml. In theory it can hold mappings and even connection strings. However, with Apache Isis we tend to use annotations instead and externalize connection strings. so its definition is extremely simply, specifying just the name of the \"persistence unit\".  Here’s the one provided by the SimpleApp archetype:  Normally all one needs to do is to change the persistence-unit name.  See DataNucleus' documentation on persistence.xml to learn more. ","description":" DataNucleus will for itself also and read the META-INF/persistence.xml. In theory it can hold mappings and even connection strings. However, with Apache Isis we tend to use annotations instead and externalize connection strings. so its definition is extremely simply, specifying just the name of the \"persistence unit","id":191180113},"193237835":{"title":"Core","url":"release-notes/release-note
 s.html#_core_8","body":"Core ","description":"","id":193237835},"193497711":{"title":"UI Hints","url":"guides/ugfun/ugfun.html#_ugfun_ui-hints","body":"UI Hints ","description":"","id":193497711},"194608562":{"title":"SPI","url":"guides/rgsvc/rgsvc.html#_spi_19","body":"SPI  The SPI defined by the service is:  where FixtureScriptsSpecification exposes these values:  The class is immutable but it has a builder (obtained using FixturescriptsSpecification.builder(…​)) for a fluent API. ","description":" The SPI defined by the service is: ","id":194608562},"195374240":{"title":"Update the LDAP committee (if a PMC member)","url":"guides/cgcom/cgcom.html#_update_the_ldap_committee_if_a_pmc_member","body":"Update the LDAP committee (if a PMC member)  (Assuming that the new committer is a PMC member), also add them as to the PMC committee. This takes two steps:  The new committer does not officially become a member of the PMC until the ASF records have been updated. ","description":" (A
 ssuming that the new committer is a PMC member), also add them as to the PMC committee. This takes two steps: ","id":195374240},"195848147":{"title":"ICLA, obtain new account","url":"guides/cgcom/cgcom.html#_icla_obtain_new_account","body":"ICLA, obtain new account  If required (that is, if the committer is not already a committer for a different ASF project), then ask them to complete an ICLA. As a result of this, they should also get an @apache.org user name.  More info can be found in the ASF new committers guide. ","description":" If required (that is, if the committer is not already a committer for a different ASF project), then ask them to complete an ICLA. As a result of this, they should also get an @apache.org user name. ","id":195848147},"196560907":{"title":"XJC profile","url":"guides/rgmvn/rgmvn.html#__rgmvn_xsd_xsd-submodule_xjc-profile","body":"XJC profile  The xjc profile reads the XSD generated by the xsd goal, and from it generates Java DTOs. Note that this isn’t 
 round-tripping: the original view model is only for use within the Isis app, whereas the DTO generated from the XSDs is for use in a standalone context, eg in a Java subscriber on an event bus.  The xjc profile is defined as:  The referenced catalog.xml file instructs the xjc plugin how to resolve referenced schema locations. Only a reference for the Apache Isis common schema is likely to be needed: ","description":" The xjc profile reads the XSD generated by the xsd goal, and from it generates Java DTOs. Note that this isn’t round-tripping: the original view model is only for use within the Isis app, whereas the DTO generated from the XSDs is for use in a standalone context","id":196560907},"198329644":{"title":"Strings (Length)","url":"guides/ugfun/ugfun.html#__ugfun_programming-model_properties_datatypes_strings","body":"Strings (Length)  By default JDO/DataNucleus will map string properties to a VARCHAR(255). To limit the length, use the @Column(length=…​) annotation.  For
  example:  This is a good example of a case where Apache Isis infers domain semantics from the JDO annotation. ","description":" By default JDO/DataNucleus will map string properties to a VARCHAR(255). To limit the length, use the @Column(length=…​) annotation. ","id":198329644},"198382465":{"title":"Actions","url":"pages/tg/tg.html#_actions","body":"Actions  Most business functionality is implemented using actions basically a public method accepting domain classes and primitives as its parameter types. The action can return a domain entity, or a collection of entities, or a primitive/String/value, or void. If a domain entity is returned then that object is rendered immediately; if a collection is returned then the Wicket viewer renders a table. Such collections are sometimes called \"standalone\" collections. ","description":" Most business functionality is implemented using actions basically a public method accepting domain classes and primitives as its parameter types. The ac
 tion can return a domain entity, or a collection of entities, or a primitive/String/value, or void. If a domain entity is returned then that object is rendered","id":198382465},"203208629":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_18","body":"New Feature ","description":"","id":203208629},"203740710":{"title":"RoutingService","url":"guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_RoutingService","body":"RoutingService  The RoutingService provides the ability to return (and therefore render) an alternative object from an action invocation.  There are two primary use cases:  Currently the routing service is used only by the Wicket viewer; it is ignored by the Restful Objects viewer. ","description":" The RoutingService provides the ability to return (and therefore render) an alternative object from an action invocation. ","id":203740710},"204452611":{"title":"Related services","url":"guides/rgsvc/rgsvc.html#_related_services_15","body":"Related 
 services  The ConfigurationServiceMenu exposes the allConfigurationProperties action in the user interface. ","description":" The ConfigurationServiceMenu exposes the allConfigurationProperties action in the user interface. ","id":204452611},"207811701":{"title":"API","url":"guides/rgsvc/rgsvc.html#_api_2","body":"API  The API of TitleService is: ","description":" The API of TitleService is: ","id":207811701},"209853740":{"title":"To run","url":"guides/rgmvn/rgmvn.html#_to_run","body":"To run  The plugin is activated by default, so is run simply using:  This will run any tests, and then also - because the plugin is activated by the isis-validate property and bound to the test phase, will run the plugin’s validate goal.  If for any reason you want to disable the validation, use: ","description":" The plugin is activated by default, so is run simply using: ","id":209853740},"213642269":{"title":"Moving on","url":"guides/ugfun/ugfun.html#__ugfun_getting-started_helloworld-archetype_m
 oving-on","body":"Moving on  When you are ready to start working on your own app, we don’t recommend building on top of the helloworld app.  Instead, we suggest that you start with the simpleapp archetype instead. Although a little more complex, it provides more structure and tests, all of which will help you as your application grows. ","description":" When you are ready to start working on your own app, we don’t recommend building on top of the helloworld app. ","id":213642269},"216231183":{"title":"Raising a pull request","url":"guides/dg/dg.html#_raising_a_pull_request","body":"Raising a pull request  If you have your own fork, you can now simply push the changes you’ve made locally to your fork:  This will create a corresponding branch in the remote github repo. If you use gitk --all, you’ll also see a remotes/origin/ISIS-123-blobs branch.  Then, use github to raise a pull request. Pull requests sent to the Apache GitHub repositories will forward a pull request e-mail t
 o the dev mailing list. You’ll probably want to sign up to the dev mailing list first before issuing your first pull request (though that isn’t mandatory).  The process to raise the pull request, broadly speaking: ","description":" If you have your own fork, you can now simply push the changes you’ve made locally to your fork: ","id":216231183},"220685197":{"title":"AbstractSubscriber","url":"guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber","body":"AbstractSubscriber  This is a convenience superclass for creating subscriber domain services on the EventBusService. It uses @PostConstruct and @PreDestroy callbacks to automatically register/unregister itself with the EventBusService.  It’s important that subscribers register before any domain services that might emit events on the EventBusService. For example, the (non-ASF) Isis addons' security module provides a domain service that automatically seeds certain domain entities; these will generate lifecycle events
  and so any subscribers must be registered before such seed services. The easiest way to do this is to use the @DomainServiceLayout#menuOrder() attribute.  As a convenience, the AbstractSubscriber specifies this attribute. ","description":" This is a convenience superclass for creating subscriber domain services on the EventBusService. It uses @PostConstruct and @PreDestroy callbacks to automatically register/unregister itself with the EventBusService. ","id":220685197},"221961571":{"title":"Release prepare \"dry run\"","url":"guides/cgcom/cgcom.html#__cgcom_cutting-a-release_releasing-core_release-prepare-dry-run","body":"Release prepare \"dry run\"  Most of the work is done using the mvn release:prepare goal. Since this makes a lot of changes, we run it first in \"dry run\" mode; only if that works do we run the goal for real.  Run the dry-run as follows:  You may be prompted for the gpg passphrase. ","description":" Most of the work is done using the mvn release:prepare goal. Sin
 ce this makes a lot of changes, we run it first in \"dry run\" mode; only if that works do we run the goal for real. ","id":221961571},"224301547":{"title":"IsisWebAppBootstrapper","url":"guides/ugbtb/ugbtb.html#__code_isiswebappbootstrapper_code","body":"IsisWebAppBootstrapper  The IsisWebAppBootstrapper servlet context listener bootstraps the shared (global) metadata for the Apache Isis framework. This listener is not required (indeed must not be configured) if the Wicket viewer is in use.  Its definition is:  Its context parameters are: ","description":" The IsisWebAppBootstrapper servlet context listener bootstraps the shared (global) metadata for the Apache Isis framework. This listener is not required (indeed must not be configured) if the Wicket viewer is in use. ","id":224301547},"227377078":{"title":"Initialization","url":"guides/ugfun/ugfun.html#_ugfun_programming-model_domain-services_initialization","body":"Initialization  Services can optionally declare lifecycle callba
 cks to initialize them (when the app is deployed) and to shut them down (when the app is undeployed).  An Apache Isis session is available when initialization occurs (so services can interact with the object store, for example).  The framework will call any public method annotated with @PostConstruct with either no arguments of an argument of type Map<String,String>. In the latter case, the framework passes in the configuration (isis.properties and any other component-specific configuration files).  Shutdown is similar; the framework will call any method annotated with @PreDestroy. ","description":" Services can optionally declare lifecycle callbacks to initialize them (when the app is deployed) and to shut them down (when the app is undeployed). ","id":227377078},"228550183":{"title":"Policies","url":"guides/cgcom/cgcom.html#_cgcom_policies","body":"Policies ","description":"","id":228550183},"229025509":{"title":"Remove references to isis-viewer-wicket parent pom.","url":"migratio
 n-notes/migration-notes.html#_remove_references_to_code_isis_viewer_wicket_code_parent_pom","body":"Remove references to isis-viewer-wicket parent pom.  In earlier releases the Wicket viewer defined its own parent pom.xml for dependency management and its dependencies and to declare the various submodules that make up the viewer. This pom.xml has now been incorporated into the parent pom.xml for the Core framework.  Therefore, in the parent pom.xml of your own domain applications, remove: ","description":" In earlier releases the Wicket viewer defined its own parent pom.xml for dependency management and its dependencies and to declare the various submodules that make up the viewer. This pom.xml has now been incorporated into the parent pom.xml for the Core framework. ","id":229025509},"230599582":{"title":"AuditingServiceInternal","url":"guides/rgfis/rgfis.html#_rgfis_persistence-layer_AuditingServiceInternal","body":"AuditingServiceInternal  The (internal) AuditingServiceInternal d
 omain service acts as an internal facade to any configured AuditingService and AuditerService services. It is responsible for obtaining the details of all changes to domain objects within an interaction, and then to call the configured AuditingService to actually create audit entries of those changes. ","description":" The (internal) AuditingServiceInternal domain service acts as an internal facade to any configured AuditingService and AuditerService services. It is responsible for obtaining the details of all changes to domain objects within an interaction, and then to call the configured AuditingService to actually create audit entries of those changes. ","id":230599582},"232471644":{"title":"Registering Subscribers","url":"guides/rgsvc/rgsvc.html#_registering_subscribers","body":"Registering Subscribers  The register() method should be called in the @PostConstruct lifecycle method. It is valid and probably the least confusing to readers to also \"unregister\" in the @PreDestroy l
 ifecycle method (though as noted above, unregistering is actually a no-op).  For example:  This works for both singleton (application-scoped) and also @RequestScoped domain services. ","description":" The register() method should be called in the @PostConstruct lifecycle method. It is valid and probably the least confusing to readers to also \"unregister\" in the @PreDestroy lifecycle method (though as noted above, unregistering is actually a no-op). ","id":232471644},"235512052":{"title":"Usage","url":"guides/rgsvc/rgsvc.html#_usage_21","body":"Usage  The usage will vary depending upon the conventions of the design. As of 1.9.0, the usage of the service has been centralized such that the packages to be scanned are located from the AppManifest's #getModules() method.  For example, the SimpleApp archetype's app manifest includes:  where the three module classes in effect define three different package prefixes to search under (for domain services, fixture scripts and persistent entit
 ies).  Other usages of the ClassDiscoveryService are likely to work in a similar way, requiring some sort of scope to be specified. ","description":" The usage will vary depending upon the conventions of the design. As of 1.9.0, the usage of the service has been centralized such that the packages to be scanned are located from the AppManifest's #getModules() method. ","id":235512052},"238546442":{"title":"rebuildMetamodel()","url":"guides/rgcms/rgcms.html#__rgcms_classes_mixins_Object_rebuildMetamodel","body":"rebuildMetamodel()  The Object_rebuildMetamodel mixin provides the ability to discard the current internal metamodel data (an instance of ObjectSpecification) for the domain class of the rendered object, and recreate from code and other sources (most notably, layout XML data). It has the following signature: ","description":" The Object_rebuildMetamodel mixin provides the ability to discard the current internal metamodel data (an instance of ObjectSpecification) for the domain
  class of the rendered object, and recreate from code and other sources (most notably, layout XML data). It has the following signature: ","id":238546442},"238979657":{"title":"New Feature","url":"release-notes/release-notes.html#_new_feature_22","body":"New Feature ","description":"","id":238979657},"240026998":{"title":"Improvement","url":"release-notes/release-notes.html#_improvement_14","body":"Improvement ","description":"","id":240026998},"242030985":{"title":"1.4.0","url":"release-notes/release-notes.html#_release-notes_1.4.0","body":"1.4.0 ","description":"","id":242030985},"243439147":{"title":"hidden()","url":"guides/rgant/rgant.html#_rgant-Property_hidden","body":"hidden()  Properties can be hidden at the domain-level, indicating that they are not visible to the end-user. This attribute can also be applied to actions and collections.  For example:  The acceptable values for the where parameter are:  For example, if a property is annotated with @Title, then normally this s
 hould be hidden from all tables. Annotating with @Property(where=Where.NOWHERE) overrides this. ","description":" Properties can be hidden at the domain-level, indicating that they are not visible to the end-user. This attribute can also be applied to actions and collections. ","id":243439147},"243876171":{"title":"Task","url":"release-notes/release-notes.html#_task_28","body":"Task ","description":"","id":243876171},"244520152":{"title":"SessionLoggingService","url":"guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_SessionLoggingService","body":"SessionLoggingService  The SessionLoggingService defines an SPI to keep track of (typically: to log) the current sessions that are using the application. ","description":" The SessionLoggingService defines an SPI to keep track of (typically: to log) the current sessions that are using the application. ","id":244520152},"246275568":{"title":"Registering the Services","url":"guides/rgsvc/rgsvc.html#_registering_the_services_4","body":"Re
 gistering the Services  Assuming that the configuration-and-annotation services installer is configured (implicit if using the AppManifest to bootstrap the app), then the default implementation of GridLoaderService is automatically registered and injected, and no further configuration is required.  To use an alternative implementation, use @DomainServiceLayout#menuOrder() (as explained in the introduction to this guide). That said, there should be little reason to use a different implementation; if behaviour does need to be changed, it would also be possible to replace the implementation of either the GridLoaderService or the GridSystemService. ","description":" Assuming that the configuration-and-annotation services installer is configured (implicit if using the AppManifest to bootstrap the app), then the default implementation of GridLoaderService is automatically registered and injected, and no further configuration is required. ","id":246275568},"246409050":{"title":"Using syste
 m properties","url":"guides/ugbtb/ugbtb.html#_using_system_properties","body":"Using system properties  The servlet context initializer will search for any system properties called isis.xxx and if present will use them as overrides.  Thus, an alternative option for a Docker image is to bootstrap the servlet container (Tomcat, Jetty) with appropriate system properties set up. For example, with Tomcat this can be done by writing into the conf/catalina.properties file (see for example this stackoverflow post).  The Docker’s ENTRYPOINT therefore just needs to parse the Docker container’s own command line arguments and use to create this file. ","description":" The servlet context initializer will search for any system properties called isis.xxx and if present will use them as overrides. ","id":246409050},"251015067":{"title":"myapp-dom Module","url":"migration-notes/migration-notes.html#__code_myapp_dom_code_module","body":"myapp-dom Module  In your myapp-dom module (containing defi
 nitions of your persistent entities and domain services), create an empty class to represent the module. This should be at the root package for the domain, eg:  Since there is no requirement to actually instantiate this class (it merely provides the location of the myapp.dom package), we give it a private constructor.  If you have any other modules where you have either domain services or entities, similarly create an empty \"module\" class. ","description":" In your myapp-dom module (containing definitions of your persistent entities and domain services), create an empty class to represent the module. This should be at the root package for the domain, eg: ","id":251015067},"255768608":{"title":"Multi-tenancy support","url":"pages/isis-in-pictures/isis-in-pictures.html#_multi_tenancy_support","body":"Multi-tenancy support  Of the various Isis Addons, the security module has the most features. One significant feature is the ability to associate users and objects with a \"tenancy\". T
 he todoapp uses this feature so that different users' list of todo items are kept separate from one another. A user with administrator is able to switch their own \"tenancy\" to the tenancy of some other user, in order to access the objects in that tenancy:  For more details, see the security module README. ","description":" Of the various Isis Addons, the security module has the most features. One significant feature is the ability to associate users and objects with a \"tenancy\". The todoapp uses this feature so that different users' list of todo items are kept separate from one another. A user with administrator is","id":255768608},"257661017":{"title":"AppManifest (bootstrapping)","url":"guides/rgcms/rgcms.html#_rgcms_classes_AppManifest-bootstrapping","body":"AppManifest (bootstrapping)  This section describes how to implement the AppManifest interface to bootstrap both an Apache Isis web application, and also its integration tests. ","description":" This section describes how
  to implement the AppManifest interface to bootstrap both an Apache Isis web application, and also its integration tests. ","id":257661017},"259358868":{"title":"Hints and Tips","url":"guides/ugodn/ugodn.html#_ugodn_hints-and-tips","body":"Hints and Tips ","description":"","id":259358868},"266250802":{"title":"Implementation","url":"guides/rgsvc/rgsvc.html#_implementation_2","body":"Implementation  The (non-ASF) Isis addons' kitchensink app provides an example implementation:  which is rendered as: ","description":" The (non-ASF) Isis addons' kitchensink app provides an example implementation: ","id":266250802},"267695496":{"title":"Building Apache Isis","url":"guides/dg/dg.html#_dg_building-isis","body":"Building Apache Isis ","description":"","id":267695496},"273843820":{"title":"Simulated UI (WrapperFactory)","url":"guides/ugtst/ugtst.html#_simulated_ui_code_wrapperfactory_code","body":"Simulated UI (WrapperFactory)  When we talk about integration tests/specs here, we mean tests 
 that exercise the domain object logic, through to the actual database. But we also want the tests to exercise the app from the users’s perspective, which means including the user interface.  For most other frameworks that would require having to test the application in a very heavy weight/fragile fashion using a tool such as Selenium, driving a web browser to navigate . In this regard though, Apache Isis has a significant trick up its sleeve. Because Apache Isis implements the naked objects pattern, it means that the UI is generated automatically from the UI. This therefore allows for other implementations of the UI.  The WrapperFactory domain service allows a test to wrap domain objects and thus to interact with said objects \"as if\" through the UI:  If the test invokes an action that is disabled, then the wrapper will throw an appropriate exception. If the action is ok to invoke, it delegates through.  What this means is that an Isis application can be tested end-to-end without
  having to deploy it onto a webserver; the whole app can be tested while running in-memory. Although integration tests re (necessarily) slower than unit tests, they are not any harder to write (in fact, in some respects they are easier). ","description":" When we talk about integration tests/specs here, we mean tests that exercise the domain object logic, through to the actual database. But we also want the tests to exercise the app from the users’s perspective, which means including the user interface. ","id":273843820},"273985863":{"title":"addTo…​() (deprecated)","url":"guides/rgcms/rgcms.html#_rgcms_methods_prefixes_addTo","body":"addTo…​() (deprecated)  The addTo…​() supporting method is called whenever an object is added to a collection. Its purpose is to allow additional business logic to be performed.  For example:  See also removeFrom…​()` ","description":" The addTo…​() supporting method is called whenever an object is added to a collection. Its purpo
 se is to allow additional business logic to be performed. ","id":273985863},"278859977":{"title":"promptStyle()","url":"guides/rgant/rgant.html#_rgant-PropertyLayout_promptStyle","body":"promptStyle()  The promptStyle() attribute is used to specify whether, when editing a domain object property, the new value for the property is prompted by way of a dialog box, or is prompted using an inline panel (replacing the property on the page).  If the attribute is not set, then the value of the configuration property isis.viewer.wicket.promptStyle is used. If this is itself not set, then an inline prompt is used.  For example:  Alternatively, the promptStyle() can be specified using file-based layouts. ","description":" The promptStyle() attribute is used to specify whether, when editing a domain object property, the new value for the property is prompted by way of a dialog box, or is prompted using an inline panel (replacing the property on the page). ","id":278859977},"278890330":{"title":
 "Build a domain app","url":"pages/tg/tg.html#_build_a_domain_app","body":"Build a domain app  The remainder of the tutorial provides guidance on building a domain application. We don’t mandate any particular design, but we suggest one with no more than 3 to 6 domain entities in the first instance. If you’re stuck for ideas, then how about:  Hopefully one of those ideas appeals or sparks an idea for something of your own. ","description":" The remainder of the tutorial provides guidance on building a domain application. We don’t mandate any particular design, but we suggest one with no more than 3 to 6 domain entities in the first instance. If you’re stuck for ideas, then how about: ","id":278890330},"278999912":{"title":"Integration API","url":"guides/rgsvc/rgsvc.html#_rgsvc_integration-api","body":"Integration API ","description":"","id":278999912},"282766365":{"title":"Object CSS Styling","url":"guides/ugfun/ugfun.html#_object_css_styling","body":"Object CSS Styling  It is
  also possible for an object to return a CSS class. In conjunction with customized CSS this can be used to apply arbitrary styling; for example each object could be rendered in a page with a different background colour. ","description":" It is also possible for an object to return a CSS class. In conjunction with customized CSS this can be used to apply arbitrary styling; for example each object could be rendered in a page with a different background colour. ","id":282766365},"283629224":{"title":"App Structure","url":"guides/ugfun/ugfun.html#_app_structure","body":"App Structure  As noted above, the generated app is a very simple application consisting of a single domain object that can be easily renamed and extended. The intention is not to showcase all of Apache Isis' capabilities; rather it is to allow you to very easily modify the generated application (eg rename SimpleObject to Customer) without having to waste time deleting lots of generated code.  If you run into issues, ple
 ase don’t hesitate to ask for help on the users mailing list. ","description":" As noted above, the generated app is a very simple application consisting of a single domain object that can be easily renamed and extended. The intention is not to showcase all of Apache Isis' capabilities; rather it is to allow you to very easily modify the generated application (eg rename","id":283629224},"285898371":{"title":"ObjectUpdatedEvent","url":"guides/rgcms/rgcms.html#_rgcms_classes_lifecycleevent_ObjectUpdatedEvent","body":"ObjectUpdatedEvent  Subclass of AbstractLifecycleEvent, broadcast when an object has just been updated in the database. This is done either explicitly when the current transaction is flushed using the DomainObjectContainer's #flush(…​) method, else is done implicitly when the transaction commits at the end of the user request.  ObjectUpdatedEvent.Default is the concrete implementation that is used. ","description":" Subclass of AbstractLifecycleEvent, broadcast when
  an object has just been updated in the database. This is done either explicitly when the current transaction is flushed using the DomainObjectContainer's #flush(…​) method, else is done implicitly when the transaction commits at the end of the user request. ","id":285898371},"286850218":{"title":"Dependent choices for action parameters","url":"guides/ugfun/ugfun.html#_dependent_choices_for_action_parameters","body":"Dependent choices for action parameters  For action it is also possible (in a limited form) to define dependencies between parameters. Specifically, if one parameter is a drop-down choice, then other drop-down choices can be derived from it.  A good example is a category/sub-category:  Note how the choices method for the 2nd parameter also accepts the first parameter. ","description":" For action it is also possible (in a limited form) to define dependencies between parameters. Specifically, if one parameter is a drop-down choice, then other drop-down choices can be
  derived from it. ","id":286850218},"287120012":{"title":"Actions","url":"guides/ugfun/ugfun.html#_actions_2","body":"Actions  Of course, the precondition business rules described above are only one type of business rule.  More generally, business rules are implemented in the form of the implementation of actions. Rather than have the end-user have to edit individual properties of numerous objects, an action can encode these rules and allow only safe transformations of the application from one consistent state to the next. ","description":" Of course, the precondition business rules described above are only one type of business rule. ","id":287120012},"288377989":{"title":"Philosophy and Architecture","url":"guides/ugfun/ugfun.html#_ugfun_core-concepts_philosophy","body":"Philosophy and Architecture  This section describes some of the core ideas and architectural patterns upon which Apache Isis builds. ","description":" This section describes some of the core ideas and architectural
  patterns upon which Apache Isis builds. ","id":288377989},"288392697":{"title":"User Experience","url":"guides/ugvw/ugvw.html#_user_experience_3","body":"User Experience  The copy URL dialog is typically obtained by clicking on the icon.  Alternatively, alt+] will also open the dialog. It can be closed with either OK or the Esc key. ","description":" The copy URL dialog is typically obtained by clicking on the icon. ","id":288392697},"291813215":{"title":"Raising events programmatically","url":"guides/rgant/rgant.html#_raising_events_programmatically","body":"Raising events programmatically  Normally events are only raised for interactions through the UI. However, events can be raised programmatically either by calling the EventBusService API directly, or by emulating the UI by wrapping the target object using the WrapperFactory domain service. ","description":" Normally events are only raised for interactions through the UI. However, events can be raised programmatically either by
  calling the EventBusService API directly, or by emulating the UI by wrapping the target object using the WrapperFactory domain service. ","id":291813215},"293860175":{"title":"Usage","url":"guides/rgsvc/rgsvc.html#_usage_10","body":"Usage  The most common use-case is for bulk actions that act upon multiple objects in a list. The (same) Scratchpad service is injected into each of these objects, and so they can use pass information.  For example, the Isis addons example todoapp (not ASF) demonstrates how the Scratchpad service can be used to calculate the total cost of the selecte

<TRUNCATED>

[4/5] isis-site git commit: ISIS-1712: adds hint-n-tip for instantiating view models

Posted by da...@apache.org.
ISIS-1712: adds hint-n-tip for instantiating view models


Project: http://git-wip-us.apache.org/repos/asf/isis-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis-site/commit/5e752223
Tree: http://git-wip-us.apache.org/repos/asf/isis-site/tree/5e752223
Diff: http://git-wip-us.apache.org/repos/asf/isis-site/diff/5e752223

Branch: refs/heads/asf-site
Commit: 5e752223152cb41fb9405a817320dc539235bd2c
Parents: 3694df1
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Sep 15 17:44:36 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Sep 15 17:44:36 2017 +0100

----------------------------------------------------------------------
 content/elasticlunr/index.json  |     2 +-
 content/guides/ugbtb/ugbtb.html |   227 +-
 content/guides/ugbtb/ugbtb.pdf  | 12962 +++++++++++++++++++++++++++------
 3 files changed, 11003 insertions(+), 2188 deletions(-)
----------------------------------------------------------------------