diff options
20 files changed, 2808 insertions, 2092 deletions
diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 5307c154..a52fe8c1 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -4,13 +4,13 @@ "version" : "5.0.0-SNAPSHOT", "title" : "Clamp Rest API" }, - "host" : "localhost:32977", + "host" : "localhost:33631", "basePath" : "/restservices/clds/", "schemes" : [ "http" ], "paths" : { "/v2/dictionary" : { "get" : { - "operationId" : "route111", + "operationId" : "route80", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -20,11 +20,11 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route111" + "x-camelContextId" : "camel-3", + "x-routeId" : "route80" }, "put" : { - "operationId" : "route113", + "operationId" : "route82", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -43,8 +43,8 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route113" + "x-camelContextId" : "camel-3", + "x-routeId" : "route82" } }, "/v2/dictionary/{dictionaryName}" : { @@ -64,7 +64,7 @@ } } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null } }, @@ -93,11 +93,11 @@ } } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null }, "delete" : { - "operationId" : "route115", + "operationId" : "route84", "produces" : [ "application/json" ], "parameters" : [ { "name" : "name", @@ -108,8 +108,8 @@ "responses" : { "200" : { } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route115" + "x-camelContextId" : "camel-3", + "x-routeId" : "route84" } }, "/v2/dictionary/{name}/elements/{shortName}" : { @@ -129,7 +129,7 @@ "responses" : { "200" : { } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null } }, @@ -147,13 +147,13 @@ } } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null } }, "/v2/loop/{loopName}" : { "get" : { - "operationId" : "route96", + "operationId" : "route65", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -169,13 +169,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route96" + "x-camelContextId" : "camel-3", + "x-routeId" : "route65" } }, "/v2/loop/delete/{loopName}" : { "put" : { - "operationId" : "route107", + "operationId" : "route76", "parameters" : [ { "name" : "loopName", "in" : "path", @@ -185,13 +185,13 @@ "responses" : { "200" : { } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route107" + "x-camelContextId" : "camel-3", + "x-routeId" : "route76" } }, "/v2/loop/deploy/{loopName}" : { "put" : { - "operationId" : "route101", + "operationId" : "route70", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -207,13 +207,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route101" + "x-camelContextId" : "camel-3", + "x-routeId" : "route70" } }, "/v2/loop/getAllNames" : { "get" : { - "operationId" : "route95", + "operationId" : "route64", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -226,13 +226,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route95" + "x-camelContextId" : "camel-3", + "x-routeId" : "route64" } }, "/v2/loop/getstatus/{loopName}" : { "get" : { - "operationId" : "route108", + "operationId" : "route77", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -248,13 +248,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route108" + "x-camelContextId" : "camel-3", + "x-routeId" : "route77" } }, "/v2/loop/refreshOpPolicyJsonSchema/{loopName}" : { "put" : { - "operationId" : "route102", + "operationId" : "route71", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -270,13 +270,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route102" + "x-camelContextId" : "camel-3", + "x-routeId" : "route71" } }, "/v2/loop/restart/{loopName}" : { "put" : { - "operationId" : "route105", + "operationId" : "route74", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -292,13 +292,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route105" + "x-camelContextId" : "camel-3", + "x-routeId" : "route74" } }, "/v2/loop/stop/{loopName}" : { "put" : { - "operationId" : "route104", + "operationId" : "route73", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -314,13 +314,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route104" + "x-camelContextId" : "camel-3", + "x-routeId" : "route73" } }, "/v2/loop/submit/{loopName}" : { "put" : { - "operationId" : "route106", + "operationId" : "route75", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -336,13 +336,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route106" + "x-camelContextId" : "camel-3", + "x-routeId" : "route75" } }, "/v2/loop/svgRepresentation/{loopName}" : { "get" : { - "operationId" : "route97", + "operationId" : "route66", "produces" : [ "application/xml" ], "parameters" : [ { "name" : "loopName", @@ -358,13 +358,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route97" + "x-camelContextId" : "camel-3", + "x-routeId" : "route66" } }, "/v2/loop/undeploy/{loopName}" : { "put" : { - "operationId" : "route103", + "operationId" : "route72", "produces" : [ "application/json" ], "parameters" : [ { "name" : "loopName", @@ -380,13 +380,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route103" + "x-camelContextId" : "camel-3", + "x-routeId" : "route72" } }, "/v2/loop/updateGlobalProperties/{loopName}" : { "post" : { - "operationId" : "route98", + "operationId" : "route67", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -410,13 +410,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route98" + "x-camelContextId" : "camel-3", + "x-routeId" : "route67" } }, "/v2/loop/updateMicroservicePolicy/{loopName}" : { "post" : { - "operationId" : "route100", + "operationId" : "route69", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -440,13 +440,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route100" + "x-camelContextId" : "camel-3", + "x-routeId" : "route69" } }, "/v2/loop/updateOperationalPolicies/{loopName}" : { "post" : { - "operationId" : "route99", + "operationId" : "route68", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -470,13 +470,13 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route99" + "x-camelContextId" : "camel-3", + "x-routeId" : "route68" } }, "/v2/policyToscaModels" : { "get" : { - "operationId" : "route118", + "operationId" : "route87", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -486,8 +486,8 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route118" + "x-camelContextId" : "camel-3", + "x-routeId" : "route87" } }, "/v2/policyToscaModels/{policyModelType}" : { @@ -507,11 +507,11 @@ } } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null }, "put" : { - "operationId" : "route119", + "operationId" : "route88", "consumes" : [ "plain/text" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -535,8 +535,8 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route119" + "x-camelContextId" : "camel-3", + "x-routeId" : "route88" } }, "/v2/policyToscaModels/yaml/{policyModelType}" : { @@ -556,13 +556,13 @@ } } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null } }, "/v2/templates" : { "get" : { - "operationId" : "route122", + "operationId" : "route91", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -572,8 +572,8 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route122" + "x-camelContextId" : "camel-3", + "x-routeId" : "route91" } }, "/v2/templates/{templateName}" : { @@ -593,7 +593,7 @@ } } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null } }, @@ -611,13 +611,13 @@ } } }, - "x-camelContextId" : "camel-4", + "x-camelContextId" : "camel-3", "x-routeId" : null } }, "/v1/healthcheck" : { "get" : { - "operationId" : "route123", + "operationId" : "route92", "produces" : [ "application/json" ], "responses" : { "200" : { @@ -627,19 +627,19 @@ } } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route123" + "x-camelContextId" : "camel-3", + "x-routeId" : "route92" } }, "/v1/user/getUser" : { "get" : { - "operationId" : "route124", + "operationId" : "route93", "produces" : [ "text/plain" ], "responses" : { "200" : { } }, - "x-camelContextId" : "camel-4", - "x-routeId" : "route124" + "x-camelContextId" : "camel-3", + "x-routeId" : "route93" } } }, @@ -809,20 +809,19 @@ "number" : { "type" : "boolean" }, + "string" : { + "type" : "boolean" + }, + "boolean" : { + "type" : "boolean" + }, "asString" : { "type" : "string" }, - "asNumber" : { - "$ref" : "#/definitions/Number" - }, "asDouble" : { "type" : "number", "format" : "double" }, - "asFloat" : { - "type" : "number", - "format" : "float" - }, "asLong" : { "type" : "integer", "format" : "int64" @@ -831,6 +830,13 @@ "type" : "integer", "format" : "int32" }, + "asNumber" : { + "$ref" : "#/definitions/Number" + }, + "asFloat" : { + "type" : "number", + "format" : "float" + }, "asByte" : { "type" : "string", "format" : "byte" @@ -848,21 +854,9 @@ "type" : "integer", "format" : "int32" }, - "boolean" : { - "type" : "boolean" - }, - "string" : { - "type" : "boolean" - }, - "asJsonPrimitive" : { - "$ref" : "#/definitions/JsonPrimitive" - }, "asJsonObject" : { "$ref" : "#/definitions/JsonObject" }, - "asJsonArray" : { - "$ref" : "#/definitions/JsonArray" - }, "jsonArray" : { "type" : "boolean" }, @@ -875,6 +869,12 @@ "jsonNull" : { "type" : "boolean" }, + "asJsonArray" : { + "$ref" : "#/definitions/JsonArray" + }, + "asJsonPrimitive" : { + "$ref" : "#/definitions/JsonPrimitive" + }, "asJsonNull" : { "$ref" : "#/definitions/JsonNull" } @@ -952,17 +952,23 @@ "asBoolean" : { "type" : "boolean" }, - "asJsonPrimitive" : { - "$ref" : "#/definitions/JsonPrimitive" + "asJsonObject" : { + "$ref" : "#/definitions/JsonObject" }, "asString" : { "type" : "string" }, - "asJsonObject" : { - "$ref" : "#/definitions/JsonObject" + "asDouble" : { + "type" : "number", + "format" : "double" }, - "asJsonArray" : { - "$ref" : "#/definitions/JsonArray" + "asLong" : { + "type" : "integer", + "format" : "int64" + }, + "asInt" : { + "type" : "integer", + "format" : "int32" }, "jsonArray" : { "type" : "boolean" @@ -976,28 +982,22 @@ "jsonNull" : { "type" : "boolean" }, + "asJsonArray" : { + "$ref" : "#/definitions/JsonArray" + }, + "asJsonPrimitive" : { + "$ref" : "#/definitions/JsonPrimitive" + }, "asJsonNull" : { "$ref" : "#/definitions/JsonNull" }, "asNumber" : { "$ref" : "#/definitions/Number" }, - "asDouble" : { - "type" : "number", - "format" : "double" - }, "asFloat" : { "type" : "number", "format" : "float" }, - "asLong" : { - "type" : "integer", - "format" : "int64" - }, - "asInt" : { - "type" : "integer", - "format" : "int32" - }, "asByte" : { "type" : "string", "format" : "byte" @@ -1144,17 +1144,23 @@ "asBoolean" : { "type" : "boolean" }, - "asJsonPrimitive" : { - "$ref" : "#/definitions/JsonPrimitive" + "asJsonObject" : { + "$ref" : "#/definitions/JsonObject" }, "asString" : { "type" : "string" }, - "asJsonObject" : { - "$ref" : "#/definitions/JsonObject" + "asDouble" : { + "type" : "number", + "format" : "double" }, - "asJsonArray" : { - "$ref" : "#/definitions/JsonArray" + "asLong" : { + "type" : "integer", + "format" : "int64" + }, + "asInt" : { + "type" : "integer", + "format" : "int32" }, "jsonArray" : { "type" : "boolean" @@ -1168,28 +1174,22 @@ "jsonNull" : { "type" : "boolean" }, + "asJsonArray" : { + "$ref" : "#/definitions/JsonArray" + }, + "asJsonPrimitive" : { + "$ref" : "#/definitions/JsonPrimitive" + }, "asJsonNull" : { "$ref" : "#/definitions/JsonNull" }, "asNumber" : { "$ref" : "#/definitions/Number" }, - "asDouble" : { - "type" : "number", - "format" : "double" - }, "asFloat" : { "type" : "number", "format" : "float" }, - "asLong" : { - "type" : "integer", - "format" : "int64" - }, - "asInt" : { - "type" : "integer", - "format" : "int32" - }, "asByte" : { "type" : "string", "format" : "byte" @@ -1218,17 +1218,10 @@ "asString" : { "type" : "string" }, - "asNumber" : { - "$ref" : "#/definitions/Number" - }, "asDouble" : { "type" : "number", "format" : "double" }, - "asFloat" : { - "type" : "number", - "format" : "float" - }, "asLong" : { "type" : "integer", "format" : "int64" @@ -1237,6 +1230,13 @@ "type" : "integer", "format" : "int32" }, + "asNumber" : { + "$ref" : "#/definitions/Number" + }, + "asFloat" : { + "type" : "number", + "format" : "float" + }, "asByte" : { "type" : "string", "format" : "byte" @@ -1254,15 +1254,9 @@ "type" : "integer", "format" : "int32" }, - "asJsonPrimitive" : { - "$ref" : "#/definitions/JsonPrimitive" - }, "asJsonObject" : { "$ref" : "#/definitions/JsonObject" }, - "asJsonArray" : { - "$ref" : "#/definitions/JsonArray" - }, "jsonArray" : { "type" : "boolean" }, @@ -1275,6 +1269,12 @@ "jsonNull" : { "type" : "boolean" }, + "asJsonArray" : { + "$ref" : "#/definitions/JsonArray" + }, + "asJsonPrimitive" : { + "$ref" : "#/definitions/JsonPrimitive" + }, "asJsonNull" : { "$ref" : "#/definitions/JsonNull" } diff --git a/docs/swagger/swagger.pdf b/docs/swagger/swagger.pdf index 692034ce..d9acf9d7 100644 --- a/docs/swagger/swagger.pdf +++ b/docs/swagger/swagger.pdf @@ -4,16 +4,16 @@ << /Title (Clamp Rest API) /Creator (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0) /Producer (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0) -/CreationDate (D:20200225132217-08'00') -/ModDate (D:20200225132217-08'00') +/CreationDate (D:20200226131758+01'00') +/ModDate (D:20200226131758+01'00') >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R /Names 20 0 R -/Outlines 589 0 R -/PageLabels 733 0 R +/Outlines 588 0 R +/PageLabels 732 0 R /PageMode /UseOutlines /OpenAction [7 0 R /FitH 793.0] /ViewerPreferences << /DisplayDocTitle true @@ -23,7 +23,7 @@ endobj 3 0 obj << /Type /Pages /Count 33 -/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 27 0 R 43 0 R 58 0 R 72 0 R 84 0 R 97 0 R 110 0 R 124 0 R 137 0 R 151 0 R 165 0 R 178 0 R 193 0 R 208 0 R 215 0 R 221 0 R 229 0 R 235 0 R 240 0 R 249 0 R 256 0 R 266 0 R 272 0 R 278 0 R 286 0 R 297 0 R 303 0 R] +/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 27 0 R 43 0 R 58 0 R 72 0 R 84 0 R 97 0 R 110 0 R 124 0 R 137 0 R 151 0 R 165 0 R 178 0 R 192 0 R 207 0 R 214 0 R 220 0 R 228 0 R 234 0 R 239 0 R 248 0 R 255 0 R 265 0 R 271 0 R 277 0 R 285 0 R 296 0 R 302 0 R] >> endobj 4 0 obj @@ -80,11 +80,11 @@ endobj << /Type /Font /BaseFont /AAAAAA+NotoSerif /Subtype /TrueType -/FontDescriptor 735 0 R +/FontDescriptor 734 0 R /FirstChar 32 /LastChar 255 -/Widths 737 0 R -/ToUnicode 736 0 R +/Widths 736 0 R +/ToUnicode 735 0 R >> endobj 9 0 obj @@ -1559,7 +1559,7 @@ endobj /F1.0 8 0 R >> >> -/Annots [306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R] +/Annots [305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R] >> endobj 11 0 obj @@ -3102,7 +3102,7 @@ endobj /Font << /F1.0 8 0 R >> >> -/Annots [378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R] +/Annots [377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R] >> endobj 13 0 obj @@ -4645,7 +4645,7 @@ endobj /Font << /F1.0 8 0 R >> >> -/Annots [454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 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] +/Annots [453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 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] >> endobj 15 0 obj @@ -5828,7 +5828,7 @@ endobj /Font << /F1.0 8 0 R >> >> -/Annots [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 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 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R] +/Annots [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 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 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R] >> endobj 17 0 obj @@ -5910,7 +5910,7 @@ ET BT 71.30850000000001 592.176 Td /F1.0 10.5 Tf -<203a206c6f63616c686f73743a3332393737> Tj +<203a206c6f63616c686f73743a3333363331> Tj ET 0.000 0.000 0.000 SCN @@ -6011,7 +6011,7 @@ endobj /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> >> @@ -6025,18 +6025,18 @@ endobj >> endobj 21 0 obj -<< /Kids [53 0 R 247 0 R 160 0 R 87 0 R 130 0 R 198 0 R 54 0 R 188 0 R 119 0 R 82 0 R 185 0 R] +<< /Kids [53 0 R 246 0 R 160 0 R 87 0 R 130 0 R 197 0 R 54 0 R 187 0 R 116 0 R 82 0 R] >> endobj 22 0 obj << /Type /Font /BaseFont /AAAAAB+NotoSerif-Bold /Subtype /TrueType -/FontDescriptor 739 0 R +/FontDescriptor 738 0 R /FirstChar 32 /LastChar 255 -/Widths 741 0 R -/ToUnicode 740 0 R +/Widths 740 0 R +/ToUnicode 739 0 R >> endobj 23 0 obj @@ -6046,11 +6046,11 @@ endobj << /Type /Font /BaseFont /AAAAAC+NotoSerif-Italic /Subtype /TrueType -/FontDescriptor 743 0 R +/FontDescriptor 742 0 R /FirstChar 32 /LastChar 255 -/Widths 745 0 R -/ToUnicode 744 0 R +/Widths 744 0 R +/ToUnicode 743 0 R >> endobj 25 0 obj @@ -6950,7 +6950,7 @@ endobj /F1.0 8 0 R /F4.0 33 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [31 0 R 39 0 R] @@ -6980,11 +6980,11 @@ endobj << /Type /Font /BaseFont /AAAAAD+mplus1mn-regular /Subtype /TrueType -/FontDescriptor 747 0 R +/FontDescriptor 746 0 R /FirstChar 32 /LastChar 255 -/Widths 749 0 R -/ToUnicode 748 0 R +/Widths 748 0 R +/ToUnicode 747 0 R >> endobj 34 0 obj @@ -8225,7 +8225,7 @@ endobj /F1.0 8 0 R /F4.0 33 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [45 0 R 47 0 R] @@ -8270,7 +8270,7 @@ endobj endobj 53 0 obj << /Limits [(_cldshealthcheck) (_dictionaryelement)] -/Names [(_cldshealthcheck) 210 0 R (_consumes) 48 0 R (_consumes_2) 67 0 R (_consumes_3) 143 0 R (_consumes_4) 152 0 R (_consumes_5) 159 0 R (_consumes_6) 190 0 R (_definitions) 209 0 R (_dictionary) 211 0 R (_dictionaryelement) 213 0 R] +/Names [(_cldshealthcheck) 209 0 R (_consumes) 48 0 R (_consumes_2) 67 0 R (_consumes_3) 143 0 R (_consumes_4) 152 0 R (_consumes_5) 159 0 R (_consumes_6) 189 0 R (_definitions) 208 0 R (_dictionary) 210 0 R (_dictionaryelement) 212 0 R] >> endobj 54 0 obj @@ -9630,7 +9630,7 @@ endobj /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [60 0 R 64 0 R 66 0 R] @@ -10824,7 +10824,7 @@ endobj /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> >> @@ -10857,8 +10857,8 @@ endobj [72 0 R /XYZ 0 108.12000000000052 null] endobj 82 0 obj -<< /Limits [(_route108) (_route96)] -/Names [(_route108) 94 0 R (_route111) 37 0 R (_route113) 41 0 R (_route115) 69 0 R (_route118) 169 0 R (_route119) 184 0 R (_route122) 194 0 R (_route123) 29 0 R (_route124) 34 0 R (_route95) 91 0 R (_route96) 162 0 R] +<< /Limits [(_route77) (_version_information)] +/Names [(_route77) 94 0 R (_route80) 37 0 R (_route82) 41 0 R (_route84) 69 0 R (_route87) 169 0 R (_route88) 184 0 R (_route91) 193 0 R (_route92) 29 0 R (_route93) 34 0 R (_service) 300 0 R (_uri_scheme) 25 0 R (_v2_dictionary_dictionaryname_get) 55 0 R (_v2_dictionary_name_elements_shortname_delete) 75 0 R (_v2_dictionary_name_put) 62 0 R (_v2_dictionary_secondary_names_get) 50 0 R (_v2_policytoscamodels_policymodeltype_get) 179 0 R (_v2_policytoscamodels_yaml_policymodeltype_get) 173 0 R (_v2_templates_names_get) 198 0 R (_v2_templates_templatename_get) 201 0 R (_version_information) 23 0 R] >> endobj 83 0 obj @@ -12192,7 +12192,7 @@ endobj /F3.0 24 0 R /F4.0 33 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [89 0 R] @@ -12206,7 +12206,7 @@ endobj endobj 87 0 obj << /Limits [(_parameters_8) (_produces_15)] -/Names [(_parameters_8) 95 0 R (_parameters_9) 102 0 R (_paths) 28 0 R (_policymodel) 299 0 R (_produces) 32 0 R (_produces_10) 90 0 R (_produces_11) 93 0 R (_produces_12) 100 0 R (_produces_13) 105 0 R (_produces_14) 112 0 R (_produces_15) 117 0 R] +/Names [(_parameters_8) 95 0 R (_parameters_9) 102 0 R (_paths) 28 0 R (_policymodel) 298 0 R (_produces) 32 0 R (_produces_10) 90 0 R (_produces_11) 93 0 R (_produces_12) 100 0 R (_produces_13) 105 0 R (_produces_14) 112 0 R (_produces_15) 118 0 R] >> endobj 88 0 obj @@ -13432,7 +13432,7 @@ endobj /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [99 0 R 104 0 R] @@ -14902,10 +14902,10 @@ endobj /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [111 0 R 116 0 R 122 0 R] +/Annots [111 0 R 117 0 R 122 0 R] >> endobj 111 0 obj @@ -14929,6 +14929,11 @@ endobj [110 0 R /XYZ 0 481.68000000000046 null] endobj 116 0 obj +<< /Limits [(_responses_5) (_route76)] +/Names [(_responses_5) 51 0 R (_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 73 0 R (_responses_9) 77 0 R (_route64) 91 0 R (_route65) 162 0 R (_route66) 126 0 R (_route67) 138 0 R (_route68) 154 0 R (_route69) 145 0 R (_route70) 85 0 R (_route71) 101 0 R (_route72) 131 0 R (_route73) 113 0 R (_route74) 106 0 R (_route75) 119 0 R (_route76) 79 0 R] +>> +endobj +117 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -14936,16 +14941,11 @@ endobj /Type /Annot >> endobj -117 0 obj -[110 0 R /XYZ 0 376.5600000000004 null] -endobj 118 0 obj -[110 0 R /XYZ 0 320.28000000000037 null] +[110 0 R /XYZ 0 376.5600000000004 null] endobj 119 0 obj -<< /Limits [(_responses_5) (_route107)] -/Names [(_responses_5) 51 0 R (_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 73 0 R (_responses_9) 77 0 R (_route100) 145 0 R (_route101) 85 0 R (_route102) 101 0 R (_route103) 131 0 R (_route104) 113 0 R (_route105) 106 0 R (_route106) 118 0 R (_route107) 79 0 R] ->> +[110 0 R /XYZ 0 320.28000000000037 null] endobj 120 0 obj [110 0 R /XYZ 0 280.20000000000033 null] @@ -16162,7 +16162,7 @@ endobj /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [134 0 R] @@ -17665,7 +17665,7 @@ endobj /F1.0 8 0 R /F4.0 33 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [140 0 R 142 0 R 147 0 R 149 0 R] @@ -18861,7 +18861,7 @@ endobj /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [156 0 R 158 0 R] @@ -18903,7 +18903,7 @@ endobj endobj 160 0 obj << /Limits [(_parameters_13) (_parameters_7)] -/Names [(_parameters_13) 127 0 R (_parameters_14) 132 0 R (_parameters_15) 139 0 R (_parameters_16) 146 0 R (_parameters_17) 155 0 R (_parameters_18) 163 0 R (_parameters_19) 174 0 R (_parameters_2) 56 0 R (_parameters_20) 180 0 R (_parameters_21) 186 0 R (_parameters_22) 203 0 R (_parameters_3) 63 0 R (_parameters_4) 70 0 R (_parameters_5) 76 0 R (_parameters_6) 80 0 R (_parameters_7) 86 0 R] +/Names [(_parameters_13) 127 0 R (_parameters_14) 132 0 R (_parameters_15) 139 0 R (_parameters_16) 146 0 R (_parameters_17) 155 0 R (_parameters_18) 163 0 R (_parameters_19) 174 0 R (_parameters_2) 56 0 R (_parameters_20) 180 0 R (_parameters_21) 185 0 R (_parameters_22) 202 0 R (_parameters_3) 63 0 R (_parameters_4) 70 0 R (_parameters_5) 76 0 R (_parameters_6) 80 0 R (_parameters_7) 86 0 R] >> endobj 161 0 obj @@ -20130,7 +20130,7 @@ endobj /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> /Annots [167 0 R 171 0 R] @@ -21517,10 +21517,10 @@ endobj /F1.0 8 0 R /F4.0 33 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [182 0 R 189 0 R] +/Annots [182 0 R 188 0 R] >> endobj 179 0 obj @@ -21547,22 +21547,17 @@ endobj [178 0 R /XYZ 0 451.80000000000035 null] endobj 185 0 obj -<< /Limits [(_route97) (_version_information)] -/Names [(_route97) 126 0 R (_route98) 138 0 R (_route99) 154 0 R (_service) 301 0 R (_uri_scheme) 25 0 R (_v2_dictionary_dictionaryname_get) 55 0 R (_v2_dictionary_name_elements_shortname_delete) 75 0 R (_v2_dictionary_name_put) 62 0 R (_v2_dictionary_secondary_names_get) 50 0 R (_v2_policytoscamodels_policymodeltype_get) 179 0 R (_v2_policytoscamodels_yaml_policymodeltype_get) 173 0 R (_v2_templates_names_get) 199 0 R (_v2_templates_templatename_get) 202 0 R (_version_information) 23 0 R] ->> -endobj -186 0 obj [178 0 R /XYZ 0 411.7200000000003 null] endobj -187 0 obj +186 0 obj [178 0 R /XYZ 0 269.04000000000025 null] endobj -188 0 obj +187 0 obj << /Limits [(_responses_2) (_responses_4)] -/Names [(_responses_2) 35 0 R (_responses_20) 141 0 R (_responses_21) 148 0 R (_responses_22) 157 0 R (_responses_23) 166 0 R (_responses_24) 170 0 R (_responses_25) 175 0 R (_responses_26) 181 0 R (_responses_27) 187 0 R (_responses_28) 195 0 R (_responses_29) 200 0 R (_responses_3) 38 0 R (_responses_30) 204 0 R (_responses_4) 46 0 R] +/Names [(_responses_2) 35 0 R (_responses_20) 141 0 R (_responses_21) 148 0 R (_responses_22) 157 0 R (_responses_23) 166 0 R (_responses_24) 170 0 R (_responses_25) 175 0 R (_responses_26) 181 0 R (_responses_27) 186 0 R (_responses_28) 194 0 R (_responses_29) 199 0 R (_responses_3) 38 0 R (_responses_30) 203 0 R (_responses_4) 46 0 R] >> endobj -189 0 obj +188 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -21570,13 +21565,13 @@ endobj /Type /Annot >> endobj -190 0 obj +189 0 obj [178 0 R /XYZ 0 163.92000000000024 null] endobj -191 0 obj +190 0 obj [178 0 R /XYZ 0 107.64000000000021 null] endobj -192 0 obj +191 0 obj << /Length 16516 >> stream @@ -22780,30 +22775,30 @@ Q endstream endobj -193 0 obj +192 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 192 0 R +/Contents 191 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F1.0 8 0 R /F4.0 33 0 R /F3.0 24 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [196 0 R 205 0 R] +/Annots [195 0 R 204 0 R] >> endobj +193 0 obj +[192 0 R /XYZ 0 792.0 null] +endobj 194 0 obj -[193 0 R /XYZ 0 792.0 null] +[192 0 R /XYZ 0 718.32 null] endobj 195 0 obj -[193 0 R /XYZ 0 718.32 null] -endobj -196 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -22811,33 +22806,33 @@ endobj /Type /Annot >> endobj -197 0 obj -[193 0 R /XYZ 0 613.2000000000003 null] +196 0 obj +[192 0 R /XYZ 0 613.2000000000003 null] endobj -198 0 obj +197 0 obj << /Limits [(_produces_25) (_responses)] -/Names [(_produces_25) 183 0 R (_produces_26) 191 0 R (_produces_27) 197 0 R (_produces_28) 201 0 R (_produces_29) 206 0 R (_produces_3) 40 0 R (_produces_4) 49 0 R (_produces_5) 52 0 R (_produces_6) 61 0 R (_produces_7) 68 0 R (_produces_8) 74 0 R (_produces_9) 78 0 R (_responses) 30 0 R] +/Names [(_produces_25) 183 0 R (_produces_26) 190 0 R (_produces_27) 196 0 R (_produces_28) 200 0 R (_produces_29) 205 0 R (_produces_3) 40 0 R (_produces_4) 49 0 R (_produces_5) 52 0 R (_produces_6) 61 0 R (_produces_7) 68 0 R (_produces_8) 74 0 R (_produces_9) 78 0 R (_responses) 30 0 R] >> endobj +198 0 obj +[192 0 R /XYZ 0 556.9200000000004 null] +endobj 199 0 obj -[193 0 R /XYZ 0 556.9200000000004 null] +[192 0 R /XYZ 0 516.8400000000005 null] endobj 200 0 obj -[193 0 R /XYZ 0 516.8400000000005 null] +[192 0 R /XYZ 0 411.7200000000005 null] endobj 201 0 obj -[193 0 R /XYZ 0 411.7200000000005 null] +[192 0 R /XYZ 0 355.44000000000045 null] endobj 202 0 obj -[193 0 R /XYZ 0 355.44000000000045 null] +[192 0 R /XYZ 0 315.3600000000004 null] endobj 203 0 obj -[193 0 R /XYZ 0 315.3600000000004 null] +[192 0 R /XYZ 0 210.2400000000004 null] endobj 204 0 obj -[193 0 R /XYZ 0 210.2400000000004 null] -endobj -205 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -22845,10 +22840,10 @@ endobj /Type /Annot >> endobj -206 0 obj -[193 0 R /XYZ 0 105.12000000000037 null] +205 0 obj +[192 0 R /XYZ 0 105.12000000000037 null] endobj -207 0 obj +206 0 obj << /Length 16082 >> stream @@ -24091,32 +24086,32 @@ Q endstream endobj -208 0 obj +207 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 207 0 R +/Contents 206 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [212 0 R] +/Annots [211 0 R] >> endobj +208 0 obj +[207 0 R /XYZ 0 792.0 null] +endobj 209 0 obj -[208 0 R /XYZ 0 792.0 null] +[207 0 R /XYZ 0 712.0799999999999 null] endobj 210 0 obj -[208 0 R /XYZ 0 712.0799999999999 null] +[207 0 R /XYZ 0 524.04 null] endobj 211 0 obj -[208 0 R /XYZ 0 524.04 null] -endobj -212 0 obj << /Border [0 0 0] /Dest (_dictionaryelement) /Subtype /Link @@ -24124,10 +24119,10 @@ endobj /Type /Annot >> endobj -213 0 obj -[208 0 R /XYZ 0 148.19999999999993 null] +212 0 obj +[207 0 R /XYZ 0 148.19999999999993 null] endobj -214 0 obj +213 0 obj << /Length 20298 >> stream @@ -25704,23 +25699,23 @@ Q endstream endobj -215 0 obj +214 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 214 0 R +/Contents 213 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [216 0 R 218 0 R] +/Annots [215 0 R 217 0 R] >> endobj -216 0 obj +215 0 obj << /Border [0 0 0] /Dest (_dictionary) /Subtype /Link @@ -25728,10 +25723,10 @@ endobj /Type /Annot >> endobj -217 0 obj -[215 0 R /XYZ 0 345.11999999999995 null] +216 0 obj +[214 0 R /XYZ 0 345.11999999999995 null] endobj -218 0 obj +217 0 obj << /Border [0 0 0] /Dest (_externalcomponentstate) /Subtype /Link @@ -25739,10 +25734,10 @@ endobj /Type /Annot >> endobj -219 0 obj -[215 0 R /XYZ 0 194.6399999999999 null] +218 0 obj +[214 0 R /XYZ 0 194.6399999999999 null] endobj -220 0 obj +219 0 obj << /Length 21931 >> stream @@ -27420,26 +27415,26 @@ Q endstream endobj -221 0 obj +220 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 220 0 R +/Contents 219 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [223 0 R 224 0 R 225 0 R 226 0 R 227 0 R] +/Annots [222 0 R 223 0 R 224 0 R 225 0 R 226 0 R] >> endobj -222 0 obj -[221 0 R /XYZ 0 683.1600000000001 null] +221 0 obj +[220 0 R /XYZ 0 683.1600000000001 null] endobj -223 0 obj +222 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -27447,7 +27442,7 @@ endobj /Type /Annot >> endobj -224 0 obj +223 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -27455,7 +27450,7 @@ endobj /Type /Annot >> endobj -225 0 obj +224 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -27463,7 +27458,7 @@ endobj /Type /Annot >> endobj -226 0 obj +225 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -27471,7 +27466,7 @@ endobj /Type /Annot >> endobj -227 0 obj +226 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -27479,7 +27474,7 @@ endobj /Type /Annot >> endobj -228 0 obj +227 0 obj << /Length 21512 >> stream @@ -29141,26 +29136,26 @@ Q endstream endobj -229 0 obj +228 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 228 0 R +/Contents 227 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [231 0 R 232 0 R 233 0 R] +/Annots [230 0 R 231 0 R 232 0 R] >> endobj -230 0 obj -[229 0 R /XYZ 0 532.9200000000003 null] +229 0 obj +[228 0 R /XYZ 0 532.9200000000003 null] endobj -231 0 obj +230 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -29168,7 +29163,7 @@ endobj /Type /Annot >> endobj -232 0 obj +231 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -29176,7 +29171,7 @@ endobj /Type /Annot >> endobj -233 0 obj +232 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -29184,7 +29179,7 @@ endobj /Type /Annot >> endobj -234 0 obj +233 0 obj << /Length 21163 >> stream @@ -30838,23 +30833,23 @@ Q endstream endobj -235 0 obj +234 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 234 0 R +/Contents 233 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [236 0 R 237 0 R] +/Annots [235 0 R 236 0 R] >> endobj -236 0 obj +235 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -30862,7 +30857,7 @@ endobj /Type /Annot >> endobj -237 0 obj +236 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -30870,10 +30865,10 @@ endobj /Type /Annot >> endobj -238 0 obj -[235 0 R /XYZ 0 382.68000000000023 null] +237 0 obj +[234 0 R /XYZ 0 382.68000000000023 null] endobj -239 0 obj +238 0 obj << /Length 21656 >> stream @@ -32551,23 +32546,23 @@ Q endstream endobj -240 0 obj +239 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 239 0 R +/Contents 238 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [241 0 R 242 0 R 243 0 R 244 0 R 245 0 R] +/Annots [240 0 R 241 0 R 242 0 R 243 0 R 244 0 R] >> endobj -241 0 obj +240 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -32575,7 +32570,7 @@ endobj /Type /Annot >> endobj -242 0 obj +241 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -32583,7 +32578,7 @@ endobj /Type /Annot >> endobj -243 0 obj +242 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -32591,7 +32586,7 @@ endobj /Type /Annot >> endobj -244 0 obj +243 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -32599,7 +32594,7 @@ endobj /Type /Annot >> endobj -245 0 obj +244 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -32607,15 +32602,15 @@ endobj /Type /Annot >> endobj -246 0 obj -[240 0 R /XYZ 0 232.44000000000023 null] +245 0 obj +[239 0 R /XYZ 0 232.44000000000023 null] endobj -247 0 obj +246 0 obj << /Limits [(_externalcomponent) (_parameters_12)] -/Names [(_externalcomponent) 217 0 R (_externalcomponentstate) 219 0 R (_jsonarray) 222 0 R (_jsonnull) 230 0 R (_jsonobject) 238 0 R (_jsonprimitive) 246 0 R (_loop) 257 0 R (_loopelementmodel) 267 0 R (_looplog) 270 0 R (_looptemplate) 274 0 R (_looptemplateloopelementmodel) 279 0 R (_microservicepolicy) 282 0 R (_number) 290 0 R (_operationalpolicy) 291 0 R (_overview) 19 0 R (_parameters) 44 0 R (_parameters_10) 107 0 R (_parameters_11) 114 0 R (_parameters_12) 120 0 R] +/Names [(_externalcomponent) 216 0 R (_externalcomponentstate) 218 0 R (_jsonarray) 221 0 R (_jsonnull) 229 0 R (_jsonobject) 237 0 R (_jsonprimitive) 245 0 R (_loop) 256 0 R (_loopelementmodel) 266 0 R (_looplog) 269 0 R (_looptemplate) 273 0 R (_looptemplateloopelementmodel) 278 0 R (_microservicepolicy) 281 0 R (_number) 289 0 R (_operationalpolicy) 290 0 R (_overview) 19 0 R (_parameters) 44 0 R (_parameters_10) 107 0 R (_parameters_11) 114 0 R (_parameters_12) 120 0 R] >> endobj -248 0 obj +247 0 obj << /Length 22690 >> stream @@ -34384,23 +34379,23 @@ Q endstream endobj -249 0 obj +248 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 248 0 R +/Contents 247 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [250 0 R 251 0 R 252 0 R 253 0 R 254 0 R] +/Annots [249 0 R 250 0 R 251 0 R 252 0 R 253 0 R] >> endobj -250 0 obj +249 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -34408,7 +34403,7 @@ endobj /Type /Annot >> endobj -251 0 obj +250 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -34416,7 +34411,7 @@ endobj /Type /Annot >> endobj -252 0 obj +251 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -34424,7 +34419,7 @@ endobj /Type /Annot >> endobj -253 0 obj +252 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -34432,7 +34427,7 @@ endobj /Type /Annot >> endobj -254 0 obj +253 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -34440,7 +34435,7 @@ endobj /Type /Annot >> endobj -255 0 obj +254 0 obj << /Length 23337 >> stream @@ -36197,26 +36192,26 @@ Q endstream endobj -256 0 obj +255 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 255 0 R +/Contents 254 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R] +/Annots [257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R] >> endobj -257 0 obj -[256 0 R /XYZ 0 645.6000000000001 null] +256 0 obj +[255 0 R /XYZ 0 645.6000000000001 null] endobj -258 0 obj +257 0 obj << /Border [0 0 0] /Dest (_externalcomponent) /Subtype /Link @@ -36224,7 +36219,7 @@ endobj /Type /Annot >> endobj -259 0 obj +258 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -36232,7 +36227,7 @@ endobj /Type /Annot >> endobj -260 0 obj +259 0 obj << /Border [0 0 0] /Dest (_looplog) /Subtype /Link @@ -36240,7 +36235,7 @@ endobj /Type /Annot >> endobj -261 0 obj +260 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -36248,7 +36243,7 @@ endobj /Type /Annot >> endobj -262 0 obj +261 0 obj << /Border [0 0 0] /Dest (_microservicepolicy) /Subtype /Link @@ -36256,7 +36251,7 @@ endobj /Type /Annot >> endobj -263 0 obj +262 0 obj << /Border [0 0 0] /Dest (_service) /Subtype /Link @@ -36264,7 +36259,7 @@ endobj /Type /Annot >> endobj -264 0 obj +263 0 obj << /Border [0 0 0] /Dest (_operationalpolicy) /Subtype /Link @@ -36272,7 +36267,7 @@ endobj /Type /Annot >> endobj -265 0 obj +264 0 obj << /Length 20640 >> stream @@ -37863,26 +37858,26 @@ Q endstream endobj -266 0 obj +265 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 265 0 R +/Contents 264 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [268 0 R 269 0 R] +/Annots [267 0 R 268 0 R] >> endobj -267 0 obj -[266 0 R /XYZ 0 645.6000000000001 null] +266 0 obj +[265 0 R /XYZ 0 645.6000000000001 null] endobj -268 0 obj +267 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -37890,7 +37885,7 @@ endobj /Type /Annot >> endobj -269 0 obj +268 0 obj << /Border [0 0 0] /Dest (_looptemplateloopelementmodel) /Subtype /Link @@ -37898,10 +37893,10 @@ endobj /Type /Annot >> endobj -270 0 obj -[266 0 R /XYZ 0 157.08000000000015 null] +269 0 obj +[265 0 R /XYZ 0 157.08000000000015 null] endobj -271 0 obj +270 0 obj << /Length 21650 >> stream @@ -39577,23 +39572,23 @@ Q endstream endobj -272 0 obj +271 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 271 0 R +/Contents 270 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [273 0 R 275 0 R 276 0 R] +/Annots [272 0 R 274 0 R 275 0 R] >> endobj -273 0 obj +272 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -39601,10 +39596,10 @@ endobj /Type /Annot >> endobj -274 0 obj -[272 0 R /XYZ 0 532.9200000000001 null] +273 0 obj +[271 0 R /XYZ 0 532.9200000000001 null] endobj -275 0 obj +274 0 obj << /Border [0 0 0] /Dest (_looptemplateloopelementmodel) /Subtype /Link @@ -39612,7 +39607,7 @@ endobj /Type /Annot >> endobj -276 0 obj +275 0 obj << /Border [0 0 0] /Dest (_service) /Subtype /Link @@ -39620,7 +39615,7 @@ endobj /Type /Annot >> endobj -277 0 obj +276 0 obj << /Length 20753 >> stream @@ -41199,26 +41194,26 @@ Q endstream endobj -278 0 obj +277 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 277 0 R +/Contents 276 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [280 0 R 281 0 R 283 0 R 284 0 R] +/Annots [279 0 R 280 0 R 282 0 R 283 0 R] >> endobj -279 0 obj -[278 0 R /XYZ 0 645.6000000000001 null] +278 0 obj +[277 0 R /XYZ 0 645.6000000000001 null] endobj -280 0 obj +279 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -41226,7 +41221,7 @@ endobj /Type /Annot >> endobj -281 0 obj +280 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -41234,10 +41229,10 @@ endobj /Type /Annot >> endobj -282 0 obj -[278 0 R /XYZ 0 457.56000000000023 null] +281 0 obj +[277 0 R /XYZ 0 457.56000000000023 null] endobj -283 0 obj +282 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -41245,7 +41240,7 @@ endobj /Type /Annot >> endobj -284 0 obj +283 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -41253,7 +41248,7 @@ endobj /Type /Annot >> endobj -285 0 obj +284 0 obj << /Length 20603 >> stream @@ -42814,23 +42809,23 @@ Q endstream endobj -286 0 obj +285 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 285 0 R +/Contents 284 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [287 0 R 288 0 R 289 0 R 292 0 R 293 0 R 294 0 R 295 0 R] +/Annots [286 0 R 287 0 R 288 0 R 291 0 R 292 0 R 293 0 R 294 0 R] >> endobj -287 0 obj +286 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -42838,7 +42833,7 @@ endobj /Type /Annot >> endobj -288 0 obj +287 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -42846,7 +42841,7 @@ endobj /Type /Annot >> endobj -289 0 obj +288 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -42854,13 +42849,13 @@ endobj /Type /Annot >> endobj +289 0 obj +[285 0 R /XYZ 0 420.2400000000002 null] +endobj 290 0 obj -[286 0 R /XYZ 0 420.2400000000002 null] +[285 0 R /XYZ 0 352.3800000000001 null] endobj 291 0 obj -[286 0 R /XYZ 0 352.3800000000001 null] -endobj -292 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -42868,7 +42863,7 @@ endobj /Type /Annot >> endobj -293 0 obj +292 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -42876,7 +42871,7 @@ endobj /Type /Annot >> endobj -294 0 obj +293 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -42884,7 +42879,7 @@ endobj /Type /Annot >> endobj -295 0 obj +294 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -42892,7 +42887,7 @@ endobj /Type /Annot >> endobj -296 0 obj +295 0 obj << /Length 19359 >> stream @@ -44391,23 +44386,23 @@ Q endstream endobj -297 0 obj +296 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 296 0 R +/Contents 295 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [298 0 R 300 0 R] +/Annots [297 0 R 299 0 R] >> endobj -298 0 obj +297 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -44415,10 +44410,10 @@ endobj /Type /Annot >> endobj -299 0 obj -[297 0 R /XYZ 0 532.9200000000001 null] +298 0 obj +[296 0 R /XYZ 0 532.9200000000001 null] endobj -300 0 obj +299 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -44426,10 +44421,10 @@ endobj /Type /Annot >> endobj -301 0 obj -[297 0 R /XYZ 0 119.52000000000004 null] +300 0 obj +[296 0 R /XYZ 0 119.52000000000004 null] endobj -302 0 obj +301 0 obj << /Length 7264 >> stream @@ -45004,23 +44999,23 @@ Q endstream endobj -303 0 obj +302 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612.0 792.0] -/Contents 302 0 R +/Contents 301 0 R /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F2.0 22 0 R /F3.0 24 0 R /F1.0 8 0 R >> -/XObject << /Stamp1 588 0 R +/XObject << /Stamp1 587 0 R >> >> -/Annots [304 0 R 305 0 R] +/Annots [303 0 R 304 0 R] >> endobj -304 0 obj +303 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -45028,7 +45023,7 @@ endobj /Type /Annot >> endobj -305 0 obj +304 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -45036,7 +45031,7 @@ endobj /Type /Annot >> endobj -306 0 obj +305 0 obj << /Border [0 0 0] /Dest (_overview) /Subtype /Link @@ -45044,7 +45039,7 @@ endobj /Type /Annot >> endobj -307 0 obj +306 0 obj << /Border [0 0 0] /Dest (_overview) /Subtype /Link @@ -45052,7 +45047,7 @@ endobj /Type /Annot >> endobj -308 0 obj +307 0 obj << /Border [0 0 0] /Dest (_version_information) /Subtype /Link @@ -45060,7 +45055,7 @@ endobj /Type /Annot >> endobj -309 0 obj +308 0 obj << /Border [0 0 0] /Dest (_version_information) /Subtype /Link @@ -45068,7 +45063,7 @@ endobj /Type /Annot >> endobj -310 0 obj +309 0 obj << /Border [0 0 0] /Dest (_uri_scheme) /Subtype /Link @@ -45076,7 +45071,7 @@ endobj /Type /Annot >> endobj -311 0 obj +310 0 obj << /Border [0 0 0] /Dest (_uri_scheme) /Subtype /Link @@ -45084,7 +45079,7 @@ endobj /Type /Annot >> endobj -312 0 obj +311 0 obj << /Border [0 0 0] /Dest (_paths) /Subtype /Link @@ -45092,7 +45087,7 @@ endobj /Type /Annot >> endobj -313 0 obj +312 0 obj << /Border [0 0 0] /Dest (_paths) /Subtype /Link @@ -45100,23 +45095,23 @@ endobj /Type /Annot >> endobj -314 0 obj +313 0 obj << /Border [0 0 0] -/Dest (_route123) +/Dest (_route92) /Subtype /Link /Rect [60.24000000000001 621.7799999999997 181.64100000000002 636.0599999999998] /Type /Annot >> endobj -315 0 obj +314 0 obj << /Border [0 0 0] -/Dest (_route123) +/Dest (_route92) /Subtype /Link /Rect [557.8905 621.7799999999997 563.76 636.0599999999998] /Type /Annot >> endobj -316 0 obj +315 0 obj << /Border [0 0 0] /Dest (_responses) /Subtype /Link @@ -45124,7 +45119,7 @@ endobj /Type /Annot >> endobj -317 0 obj +316 0 obj << /Border [0 0 0] /Dest (_responses) /Subtype /Link @@ -45132,7 +45127,7 @@ endobj /Type /Annot >> endobj -318 0 obj +317 0 obj << /Border [0 0 0] /Dest (_produces) /Subtype /Link @@ -45140,7 +45135,7 @@ endobj /Type /Annot >> endobj -319 0 obj +318 0 obj << /Border [0 0 0] /Dest (_produces) /Subtype /Link @@ -45148,23 +45143,23 @@ endobj /Type /Annot >> endobj -320 0 obj +319 0 obj << /Border [0 0 0] -/Dest (_route124) +/Dest (_route93) /Subtype /Link /Rect [60.24000000000001 566.3399999999997 183.8775 580.6199999999998] /Type /Annot >> endobj -321 0 obj +320 0 obj << /Border [0 0 0] -/Dest (_route124) +/Dest (_route93) /Subtype /Link /Rect [557.8905 566.3399999999997 563.76 580.6199999999998] /Type /Annot >> endobj -322 0 obj +321 0 obj << /Border [0 0 0] /Dest (_responses_2) /Subtype /Link @@ -45172,7 +45167,7 @@ endobj /Type /Annot >> endobj -323 0 obj +322 0 obj << /Border [0 0 0] /Dest (_responses_2) /Subtype /Link @@ -45180,7 +45175,7 @@ endobj /Type /Annot >> endobj -324 0 obj +323 0 obj << /Border [0 0 0] /Dest (_produces_2) /Subtype /Link @@ -45188,7 +45183,7 @@ endobj /Type /Annot >> endobj -325 0 obj +324 0 obj << /Border [0 0 0] /Dest (_produces_2) /Subtype /Link @@ -45196,23 +45191,23 @@ endobj /Type /Annot >> endobj -326 0 obj +325 0 obj << /Border [0 0 0] -/Dest (_route111) +/Dest (_route80) /Subtype /Link /Rect [60.24000000000001 510.89999999999975 172.716 525.1799999999997] /Type /Annot >> endobj -327 0 obj +326 0 obj << /Border [0 0 0] -/Dest (_route111) +/Dest (_route80) /Subtype /Link /Rect [557.8905 510.89999999999975 563.76 525.1799999999997] /Type /Annot >> endobj -328 0 obj +327 0 obj << /Border [0 0 0] /Dest (_responses_3) /Subtype /Link @@ -45220,7 +45215,7 @@ endobj /Type /Annot >> endobj -329 0 obj +328 0 obj << /Border [0 0 0] /Dest (_responses_3) /Subtype /Link @@ -45228,7 +45223,7 @@ endobj /Type /Annot >> endobj -330 0 obj +329 0 obj << /Border [0 0 0] /Dest (_produces_3) /Subtype /Link @@ -45236,7 +45231,7 @@ endobj /Type /Annot >> endobj -331 0 obj +330 0 obj << /Border [0 0 0] /Dest (_produces_3) /Subtype /Link @@ -45244,23 +45239,23 @@ endobj /Type /Annot >> endobj -332 0 obj +331 0 obj << /Border [0 0 0] -/Dest (_route113) +/Dest (_route82) /Subtype /Link /Rect [60.24000000000001 455.4599999999997 172.548 469.73999999999967] /Type /Annot >> endobj -333 0 obj +332 0 obj << /Border [0 0 0] -/Dest (_route113) +/Dest (_route82) /Subtype /Link /Rect [557.8905 455.4599999999997 563.76 469.73999999999967] /Type /Annot >> endobj -334 0 obj +333 0 obj << /Border [0 0 0] /Dest (_parameters) /Subtype /Link @@ -45268,7 +45263,7 @@ endobj /Type /Annot >> endobj -335 0 obj +334 0 obj << /Border [0 0 0] /Dest (_parameters) /Subtype /Link @@ -45276,7 +45271,7 @@ endobj /Type /Annot >> endobj -336 0 obj +335 0 obj << /Border [0 0 0] /Dest (_responses_4) /Subtype /Link @@ -45284,7 +45279,7 @@ endobj /Type /Annot >> endobj -337 0 obj +336 0 obj << /Border [0 0 0] /Dest (_responses_4) /Subtype /Link @@ -45292,7 +45287,7 @@ endobj /Type /Annot >> endobj -338 0 obj +337 0 obj << /Border [0 0 0] /Dest (_consumes) /Subtype /Link @@ -45300,7 +45295,7 @@ endobj /Type /Annot >> endobj -339 0 obj +338 0 obj << /Border [0 0 0] /Dest (_consumes) /Subtype /Link @@ -45308,7 +45303,7 @@ endobj /Type /Annot >> endobj -340 0 obj +339 0 obj << /Border [0 0 0] /Dest (_produces_4) /Subtype /Link @@ -45316,7 +45311,7 @@ endobj /Type /Annot >> endobj -341 0 obj +340 0 obj << /Border [0 0 0] /Dest (_produces_4) /Subtype /Link @@ -45324,7 +45319,7 @@ endobj /Type /Annot >> endobj -342 0 obj +341 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_secondary_names_get) /Subtype /Link @@ -45332,7 +45327,7 @@ endobj /Type /Annot >> endobj -343 0 obj +342 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_secondary_names_get) /Subtype /Link @@ -45340,7 +45335,7 @@ endobj /Type /Annot >> endobj -344 0 obj +343 0 obj << /Border [0 0 0] /Dest (_responses_5) /Subtype /Link @@ -45348,7 +45343,7 @@ endobj /Type /Annot >> endobj -345 0 obj +344 0 obj << /Border [0 0 0] /Dest (_responses_5) /Subtype /Link @@ -45356,7 +45351,7 @@ endobj /Type /Annot >> endobj -346 0 obj +345 0 obj << /Border [0 0 0] /Dest (_produces_5) /Subtype /Link @@ -45364,7 +45359,7 @@ endobj /Type /Annot >> endobj -347 0 obj +346 0 obj << /Border [0 0 0] /Dest (_produces_5) /Subtype /Link @@ -45372,7 +45367,7 @@ endobj /Type /Annot >> endobj -348 0 obj +347 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_dictionaryname_get) /Subtype /Link @@ -45380,7 +45375,7 @@ endobj /Type /Annot >> endobj -349 0 obj +348 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_dictionaryname_get) /Subtype /Link @@ -45388,7 +45383,7 @@ endobj /Type /Annot >> endobj -350 0 obj +349 0 obj << /Border [0 0 0] /Dest (_parameters_2) /Subtype /Link @@ -45396,7 +45391,7 @@ endobj /Type /Annot >> endobj -351 0 obj +350 0 obj << /Border [0 0 0] /Dest (_parameters_2) /Subtype /Link @@ -45404,7 +45399,7 @@ endobj /Type /Annot >> endobj -352 0 obj +351 0 obj << /Border [0 0 0] /Dest (_responses_6) /Subtype /Link @@ -45412,7 +45407,7 @@ endobj /Type /Annot >> endobj -353 0 obj +352 0 obj << /Border [0 0 0] /Dest (_responses_6) /Subtype /Link @@ -45420,7 +45415,7 @@ endobj /Type /Annot >> endobj -354 0 obj +353 0 obj << /Border [0 0 0] /Dest (_produces_6) /Subtype /Link @@ -45428,7 +45423,7 @@ endobj /Type /Annot >> endobj -355 0 obj +354 0 obj << /Border [0 0 0] /Dest (_produces_6) /Subtype /Link @@ -45436,7 +45431,7 @@ endobj /Type /Annot >> endobj -356 0 obj +355 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_name_put) /Subtype /Link @@ -45444,7 +45439,7 @@ endobj /Type /Annot >> endobj -357 0 obj +356 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_name_put) /Subtype /Link @@ -45452,7 +45447,7 @@ endobj /Type /Annot >> endobj -358 0 obj +357 0 obj << /Border [0 0 0] /Dest (_parameters_3) /Subtype /Link @@ -45460,7 +45455,7 @@ endobj /Type /Annot >> endobj -359 0 obj +358 0 obj << /Border [0 0 0] /Dest (_parameters_3) /Subtype /Link @@ -45468,7 +45463,7 @@ endobj /Type /Annot >> endobj -360 0 obj +359 0 obj << /Border [0 0 0] /Dest (_responses_7) /Subtype /Link @@ -45476,7 +45471,7 @@ endobj /Type /Annot >> endobj -361 0 obj +360 0 obj << /Border [0 0 0] /Dest (_responses_7) /Subtype /Link @@ -45484,7 +45479,7 @@ endobj /Type /Annot >> endobj -362 0 obj +361 0 obj << /Border [0 0 0] /Dest (_consumes_2) /Subtype /Link @@ -45492,7 +45487,7 @@ endobj /Type /Annot >> endobj -363 0 obj +362 0 obj << /Border [0 0 0] /Dest (_consumes_2) /Subtype /Link @@ -45500,7 +45495,7 @@ endobj /Type /Annot >> endobj -364 0 obj +363 0 obj << /Border [0 0 0] /Dest (_produces_7) /Subtype /Link @@ -45508,7 +45503,7 @@ endobj /Type /Annot >> endobj -365 0 obj +364 0 obj << /Border [0 0 0] /Dest (_produces_7) /Subtype /Link @@ -45516,23 +45511,23 @@ endobj /Type /Annot >> endobj -366 0 obj +365 0 obj << /Border [0 0 0] -/Dest (_route115) +/Dest (_route84) /Subtype /Link /Rect [60.24000000000001 141.29999999999953 232.70250000000001 155.57999999999953] /Type /Annot >> endobj -367 0 obj +366 0 obj << /Border [0 0 0] -/Dest (_route115) +/Dest (_route84) /Subtype /Link /Rect [557.8905 141.29999999999953 563.76 155.57999999999953] /Type /Annot >> endobj -368 0 obj +367 0 obj << /Border [0 0 0] /Dest (_parameters_4) /Subtype /Link @@ -45540,7 +45535,7 @@ endobj /Type /Annot >> endobj -369 0 obj +368 0 obj << /Border [0 0 0] /Dest (_parameters_4) /Subtype /Link @@ -45548,7 +45543,7 @@ endobj /Type /Annot >> endobj -370 0 obj +369 0 obj << /Border [0 0 0] /Dest (_responses_8) /Subtype /Link @@ -45556,7 +45551,7 @@ endobj /Type /Annot >> endobj -371 0 obj +370 0 obj << /Border [0 0 0] /Dest (_responses_8) /Subtype /Link @@ -45564,7 +45559,7 @@ endobj /Type /Annot >> endobj -372 0 obj +371 0 obj << /Border [0 0 0] /Dest (_produces_8) /Subtype /Link @@ -45572,7 +45567,7 @@ endobj /Type /Annot >> endobj -373 0 obj +372 0 obj << /Border [0 0 0] /Dest (_produces_8) /Subtype /Link @@ -45580,7 +45575,7 @@ endobj /Type /Annot >> endobj -374 0 obj +373 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_name_elements_shortname_delete) /Subtype /Link @@ -45588,7 +45583,7 @@ endobj /Type /Annot >> endobj -375 0 obj +374 0 obj << /Border [0 0 0] /Dest (_v2_dictionary_name_elements_shortname_delete) /Subtype /Link @@ -45596,7 +45591,7 @@ endobj /Type /Annot >> endobj -376 0 obj +375 0 obj << /Border [0 0 0] /Dest (_parameters_5) /Subtype /Link @@ -45604,7 +45599,7 @@ endobj /Type /Annot >> endobj -377 0 obj +376 0 obj << /Border [0 0 0] /Dest (_parameters_5) /Subtype /Link @@ -45612,7 +45607,7 @@ endobj /Type /Annot >> endobj -378 0 obj +377 0 obj << /Border [0 0 0] /Dest (_responses_9) /Subtype /Link @@ -45620,7 +45615,7 @@ endobj /Type /Annot >> endobj -379 0 obj +378 0 obj << /Border [0 0 0] /Dest (_responses_9) /Subtype /Link @@ -45628,7 +45623,7 @@ endobj /Type /Annot >> endobj -380 0 obj +379 0 obj << /Border [0 0 0] /Dest (_produces_9) /Subtype /Link @@ -45636,7 +45631,7 @@ endobj /Type /Annot >> endobj -381 0 obj +380 0 obj << /Border [0 0 0] /Dest (_produces_9) /Subtype /Link @@ -45644,23 +45639,23 @@ endobj /Type /Annot >> endobj -382 0 obj +381 0 obj << /Border [0 0 0] -/Dest (_route107) +/Dest (_route76) /Subtype /Link /Rect [60.24000000000001 704.7599999999999 245.15550000000002 719.04] /Type /Annot >> endobj -383 0 obj +382 0 obj << /Border [0 0 0] -/Dest (_route107) +/Dest (_route76) /Subtype /Link /Rect [557.8905 704.7599999999999 563.76 719.04] /Type /Annot >> endobj -384 0 obj +383 0 obj << /Border [0 0 0] /Dest (_parameters_6) /Subtype /Link @@ -45668,7 +45663,7 @@ endobj /Type /Annot >> endobj -385 0 obj +384 0 obj << /Border [0 0 0] /Dest (_parameters_6) /Subtype /Link @@ -45676,7 +45671,7 @@ endobj /Type /Annot >> endobj -386 0 obj +385 0 obj << /Border [0 0 0] /Dest (_responses_10) /Subtype /Link @@ -45684,7 +45679,7 @@ endobj /Type /Annot >> endobj -387 0 obj +386 0 obj << /Border [0 0 0] /Dest (_responses_10) /Subtype /Link @@ -45692,23 +45687,23 @@ endobj /Type /Annot >> endobj -388 0 obj +387 0 obj << /Border [0 0 0] -/Dest (_route101) +/Dest (_route70) /Subtype /Link /Rect [60.24000000000001 649.3199999999998 248.431294921875 663.5999999999999] /Type /Annot >> endobj -389 0 obj +388 0 obj << /Border [0 0 0] -/Dest (_route101) +/Dest (_route70) /Subtype /Link /Rect [557.8905 649.3199999999998 563.76 663.5999999999999] /Type /Annot >> endobj -390 0 obj +389 0 obj << /Border [0 0 0] /Dest (_parameters_7) /Subtype /Link @@ -45716,7 +45711,7 @@ endobj /Type /Annot >> endobj -391 0 obj +390 0 obj << /Border [0 0 0] /Dest (_parameters_7) /Subtype /Link @@ -45724,7 +45719,7 @@ endobj /Type /Annot >> endobj -392 0 obj +391 0 obj << /Border [0 0 0] /Dest (_responses_11) /Subtype /Link @@ -45732,7 +45727,7 @@ endobj /Type /Annot >> endobj -393 0 obj +392 0 obj << /Border [0 0 0] /Dest (_responses_11) /Subtype /Link @@ -45740,7 +45735,7 @@ endobj /Type /Annot >> endobj -394 0 obj +393 0 obj << /Border [0 0 0] /Dest (_produces_10) /Subtype /Link @@ -45748,7 +45743,7 @@ endobj /Type /Annot >> endobj -395 0 obj +394 0 obj << /Border [0 0 0] /Dest (_produces_10) /Subtype /Link @@ -45756,23 +45751,23 @@ endobj /Type /Annot >> endobj -396 0 obj +395 0 obj << /Border [0 0 0] -/Dest (_route95) +/Dest (_route64) /Subtype /Link /Rect [60.24000000000001 575.3999999999997 214.8735 589.6799999999998] /Type /Annot >> endobj -397 0 obj +396 0 obj << /Border [0 0 0] -/Dest (_route95) +/Dest (_route64) /Subtype /Link /Rect [557.8905 575.3999999999997 563.76 589.6799999999998] /Type /Annot >> endobj -398 0 obj +397 0 obj << /Border [0 0 0] /Dest (_responses_12) /Subtype /Link @@ -45780,7 +45775,7 @@ endobj /Type /Annot >> endobj -399 0 obj +398 0 obj << /Border [0 0 0] /Dest (_responses_12) /Subtype /Link @@ -45788,7 +45783,7 @@ endobj /Type /Annot >> endobj -400 0 obj +399 0 obj << /Border [0 0 0] /Dest (_produces_11) /Subtype /Link @@ -45796,7 +45791,7 @@ endobj /Type /Annot >> endobj -401 0 obj +400 0 obj << /Border [0 0 0] /Dest (_produces_11) /Subtype /Link @@ -45804,23 +45799,23 @@ endobj /Type /Annot >> endobj -402 0 obj +401 0 obj << /Border [0 0 0] -/Dest (_route108) +/Dest (_route77) /Subtype /Link /Rect [60.24000000000001 519.9599999999998 259.467 534.2399999999998] /Type /Annot >> endobj -403 0 obj +402 0 obj << /Border [0 0 0] -/Dest (_route108) +/Dest (_route77) /Subtype /Link /Rect [557.8905 519.9599999999998 563.76 534.2399999999998] /Type /Annot >> endobj -404 0 obj +403 0 obj << /Border [0 0 0] /Dest (_parameters_8) /Subtype /Link @@ -45828,7 +45823,7 @@ endobj /Type /Annot >> endobj -405 0 obj +404 0 obj << /Border [0 0 0] /Dest (_parameters_8) /Subtype /Link @@ -45836,7 +45831,7 @@ endobj /Type /Annot >> endobj -406 0 obj +405 0 obj << /Border [0 0 0] /Dest (_responses_13) /Subtype /Link @@ -45844,7 +45839,7 @@ endobj /Type /Annot >> endobj -407 0 obj +406 0 obj << /Border [0 0 0] /Dest (_responses_13) /Subtype /Link @@ -45852,7 +45847,7 @@ endobj /Type /Annot >> endobj -408 0 obj +407 0 obj << /Border [0 0 0] /Dest (_produces_12) /Subtype /Link @@ -45860,7 +45855,7 @@ endobj /Type /Annot >> endobj -409 0 obj +408 0 obj << /Border [0 0 0] /Dest (_produces_12) /Subtype /Link @@ -45868,23 +45863,23 @@ endobj /Type /Annot >> endobj -410 0 obj +409 0 obj << /Border [0 0 0] -/Dest (_route102) +/Dest (_route71) /Subtype /Link /Rect [60.24000000000001 446.03999999999974 355.8885 460.3199999999997] /Type /Annot >> endobj -411 0 obj +410 0 obj << /Border [0 0 0] -/Dest (_route102) +/Dest (_route71) /Subtype /Link /Rect [557.8905 446.03999999999974 563.76 460.3199999999997] /Type /Annot >> endobj -412 0 obj +411 0 obj << /Border [0 0 0] /Dest (_parameters_9) /Subtype /Link @@ -45892,7 +45887,7 @@ endobj /Type /Annot >> endobj -413 0 obj +412 0 obj << /Border [0 0 0] /Dest (_parameters_9) /Subtype /Link @@ -45900,7 +45895,7 @@ endobj /Type /Annot >> endobj -414 0 obj +413 0 obj << /Border [0 0 0] /Dest (_responses_14) /Subtype /Link @@ -45908,7 +45903,7 @@ endobj /Type /Annot >> endobj -415 0 obj +414 0 obj << /Border [0 0 0] /Dest (_responses_14) /Subtype /Link @@ -45916,7 +45911,7 @@ endobj /Type /Annot >> endobj -416 0 obj +415 0 obj << /Border [0 0 0] /Dest (_produces_13) /Subtype /Link @@ -45924,7 +45919,7 @@ endobj /Type /Annot >> endobj -417 0 obj +416 0 obj << /Border [0 0 0] /Dest (_produces_13) /Subtype /Link @@ -45932,23 +45927,23 @@ endobj /Type /Annot >> endobj -418 0 obj +417 0 obj << /Border [0 0 0] -/Dest (_route105) +/Dest (_route74) /Subtype /Link /Rect [60.24000000000001 372.11999999999966 248.45250000000001 386.39999999999964] /Type /Annot >> endobj -419 0 obj +418 0 obj << /Border [0 0 0] -/Dest (_route105) +/Dest (_route74) /Subtype /Link /Rect [557.8905 372.11999999999966 563.76 386.39999999999964] /Type /Annot >> endobj -420 0 obj +419 0 obj << /Border [0 0 0] /Dest (_parameters_10) /Subtype /Link @@ -45956,7 +45951,7 @@ endobj /Type /Annot >> endobj -421 0 obj +420 0 obj << /Border [0 0 0] /Dest (_parameters_10) /Subtype /Link @@ -45964,7 +45959,7 @@ endobj /Type /Annot >> endobj -422 0 obj +421 0 obj << /Border [0 0 0] /Dest (_responses_15) /Subtype /Link @@ -45972,7 +45967,7 @@ endobj /Type /Annot >> endobj -423 0 obj +422 0 obj << /Border [0 0 0] /Dest (_responses_15) /Subtype /Link @@ -45980,7 +45975,7 @@ endobj /Type /Annot >> endobj -424 0 obj +423 0 obj << /Border [0 0 0] /Dest (_produces_14) /Subtype /Link @@ -45988,7 +45983,7 @@ endobj /Type /Annot >> endobj -425 0 obj +424 0 obj << /Border [0 0 0] /Dest (_produces_14) /Subtype /Link @@ -45996,23 +45991,23 @@ endobj /Type /Annot >> endobj -426 0 obj +425 0 obj << /Border [0 0 0] -/Dest (_route104) +/Dest (_route73) /Subtype /Link /Rect [60.24000000000001 298.1999999999996 235.842 312.47999999999956] /Type /Annot >> endobj -427 0 obj +426 0 obj << /Border [0 0 0] -/Dest (_route104) +/Dest (_route73) /Subtype /Link /Rect [557.8905 298.1999999999996 563.76 312.47999999999956] /Type /Annot >> endobj -428 0 obj +427 0 obj << /Border [0 0 0] /Dest (_parameters_11) /Subtype /Link @@ -46020,7 +46015,7 @@ endobj /Type /Annot >> endobj -429 0 obj +428 0 obj << /Border [0 0 0] /Dest (_parameters_11) /Subtype /Link @@ -46028,7 +46023,7 @@ endobj /Type /Annot >> endobj -430 0 obj +429 0 obj << /Border [0 0 0] /Dest (_responses_16) /Subtype /Link @@ -46036,7 +46031,7 @@ endobj /Type /Annot >> endobj -431 0 obj +430 0 obj << /Border [0 0 0] /Dest (_responses_16) /Subtype /Link @@ -46044,7 +46039,7 @@ endobj /Type /Annot >> endobj -432 0 obj +431 0 obj << /Border [0 0 0] /Dest (_produces_15) /Subtype /Link @@ -46052,7 +46047,7 @@ endobj /Type /Annot >> endobj -433 0 obj +432 0 obj << /Border [0 0 0] /Dest (_produces_15) /Subtype /Link @@ -46060,23 +46055,23 @@ endobj /Type /Annot >> endobj -434 0 obj +433 0 obj << /Border [0 0 0] -/Dest (_route106) +/Dest (_route75) /Subtype /Link /Rect [60.24000000000001 224.27999999999952 249.70200000000003 238.55999999999952] /Type /Annot >> endobj -435 0 obj +434 0 obj << /Border [0 0 0] -/Dest (_route106) +/Dest (_route75) /Subtype /Link /Rect [557.8905 224.27999999999952 563.76 238.55999999999952] /Type /Annot >> endobj -436 0 obj +435 0 obj << /Border [0 0 0] /Dest (_parameters_12) /Subtype /Link @@ -46084,7 +46079,7 @@ endobj /Type /Annot >> endobj -437 0 obj +436 0 obj << /Border [0 0 0] /Dest (_parameters_12) /Subtype /Link @@ -46092,7 +46087,7 @@ endobj /Type /Annot >> endobj -438 0 obj +437 0 obj << /Border [0 0 0] /Dest (_responses_17) /Subtype /Link @@ -46100,7 +46095,7 @@ endobj /Type /Annot >> endobj -439 0 obj +438 0 obj << /Border [0 0 0] /Dest (_responses_17) /Subtype /Link @@ -46108,7 +46103,7 @@ endobj /Type /Annot >> endobj -440 0 obj +439 0 obj << /Border [0 0 0] /Dest (_produces_16) /Subtype /Link @@ -46116,7 +46111,7 @@ endobj /Type /Annot >> endobj -441 0 obj +440 0 obj << /Border [0 0 0] /Dest (_produces_16) /Subtype /Link @@ -46124,23 +46119,23 @@ endobj /Type /Annot >> endobj -442 0 obj +441 0 obj << /Border [0 0 0] -/Dest (_route97) +/Dest (_route66) /Subtype /Link /Rect [60.24000000000001 150.35999999999956 307.641 164.63999999999956] /Type /Annot >> endobj -443 0 obj +442 0 obj << /Border [0 0 0] -/Dest (_route97) +/Dest (_route66) /Subtype /Link /Rect [557.8905 150.35999999999956 563.76 164.63999999999956] /Type /Annot >> endobj -444 0 obj +443 0 obj << /Border [0 0 0] /Dest (_parameters_13) /Subtype /Link @@ -46148,7 +46143,7 @@ endobj /Type /Annot >> endobj -445 0 obj +444 0 obj << /Border [0 0 0] /Dest (_parameters_13) /Subtype /Link @@ -46156,7 +46151,7 @@ endobj /Type /Annot >> endobj -446 0 obj +445 0 obj << /Border [0 0 0] /Dest (_responses_18) /Subtype /Link @@ -46164,7 +46159,7 @@ endobj /Type /Annot >> endobj -447 0 obj +446 0 obj << /Border [0 0 0] /Dest (_responses_18) /Subtype /Link @@ -46172,7 +46167,7 @@ endobj /Type /Annot >> endobj -448 0 obj +447 0 obj << /Border [0 0 0] /Dest (_produces_17) /Subtype /Link @@ -46180,7 +46175,7 @@ endobj /Type /Annot >> endobj -449 0 obj +448 0 obj << /Border [0 0 0] /Dest (_produces_17) /Subtype /Link @@ -46188,23 +46183,23 @@ endobj /Type /Annot >> endobj -450 0 obj +449 0 obj << /Border [0 0 0] -/Dest (_route103) +/Dest (_route72) /Subtype /Link /Rect [60.24000000000001 76.4399999999996 261.860794921875 90.7199999999996] /Type /Annot >> endobj -451 0 obj +450 0 obj << /Border [0 0 0] -/Dest (_route103) +/Dest (_route72) /Subtype /Link /Rect [557.8905 76.4399999999996 563.76 90.7199999999996] /Type /Annot >> endobj -452 0 obj +451 0 obj << /Border [0 0 0] /Dest (_parameters_14) /Subtype /Link @@ -46212,7 +46207,7 @@ endobj /Type /Annot >> endobj -453 0 obj +452 0 obj << /Border [0 0 0] /Dest (_parameters_14) /Subtype /Link @@ -46220,7 +46215,7 @@ endobj /Type /Annot >> endobj -454 0 obj +453 0 obj << /Border [0 0 0] /Dest (_responses_19) /Subtype /Link @@ -46228,7 +46223,7 @@ endobj /Type /Annot >> endobj -455 0 obj +454 0 obj << /Border [0 0 0] /Dest (_responses_19) /Subtype /Link @@ -46236,7 +46231,7 @@ endobj /Type /Annot >> endobj -456 0 obj +455 0 obj << /Border [0 0 0] /Dest (_produces_18) /Subtype /Link @@ -46244,7 +46239,7 @@ endobj /Type /Annot >> endobj -457 0 obj +456 0 obj << /Border [0 0 0] /Dest (_produces_18) /Subtype /Link @@ -46252,23 +46247,23 @@ endobj /Type /Annot >> endobj -458 0 obj +457 0 obj << /Border [0 0 0] -/Dest (_route98) +/Dest (_route67) /Subtype /Link /Rect [60.24000000000001 704.7599999999999 339.560794921875 719.04] /Type /Annot >> endobj -459 0 obj +458 0 obj << /Border [0 0 0] -/Dest (_route98) +/Dest (_route67) /Subtype /Link /Rect [552.021 704.7599999999999 563.76 719.04] /Type /Annot >> endobj -460 0 obj +459 0 obj << /Border [0 0 0] /Dest (_parameters_15) /Subtype /Link @@ -46276,7 +46271,7 @@ endobj /Type /Annot >> endobj -461 0 obj +460 0 obj << /Border [0 0 0] /Dest (_parameters_15) /Subtype /Link @@ -46284,7 +46279,7 @@ endobj /Type /Annot >> endobj -462 0 obj +461 0 obj << /Border [0 0 0] /Dest (_responses_20) /Subtype /Link @@ -46292,7 +46287,7 @@ endobj /Type /Annot >> endobj -463 0 obj +462 0 obj << /Border [0 0 0] /Dest (_responses_20) /Subtype /Link @@ -46300,7 +46295,7 @@ endobj /Type /Annot >> endobj -464 0 obj +463 0 obj << /Border [0 0 0] /Dest (_consumes_3) /Subtype /Link @@ -46308,7 +46303,7 @@ endobj /Type /Annot >> endobj -465 0 obj +464 0 obj << /Border [0 0 0] /Dest (_consumes_3) /Subtype /Link @@ -46316,7 +46311,7 @@ endobj /Type /Annot >> endobj -466 0 obj +465 0 obj << /Border [0 0 0] /Dest (_produces_19) /Subtype /Link @@ -46324,7 +46319,7 @@ endobj /Type /Annot >> endobj -467 0 obj +466 0 obj << /Border [0 0 0] /Dest (_produces_19) /Subtype /Link @@ -46332,23 +46327,23 @@ endobj /Type /Annot >> endobj -468 0 obj +467 0 obj << /Border [0 0 0] -/Dest (_route100) +/Dest (_route69) /Subtype /Link /Rect [60.24000000000001 612.3599999999998 350.38629492187505 626.6399999999999] /Type /Annot >> endobj -469 0 obj +468 0 obj << /Border [0 0 0] -/Dest (_route100) +/Dest (_route69) /Subtype /Link /Rect [552.021 612.3599999999998 563.76 626.6399999999999] /Type /Annot >> endobj -470 0 obj +469 0 obj << /Border [0 0 0] /Dest (_parameters_16) /Subtype /Link @@ -46356,7 +46351,7 @@ endobj /Type /Annot >> endobj -471 0 obj +470 0 obj << /Border [0 0 0] /Dest (_parameters_16) /Subtype /Link @@ -46364,7 +46359,7 @@ endobj /Type /Annot >> endobj -472 0 obj +471 0 obj << /Border [0 0 0] /Dest (_responses_21) /Subtype /Link @@ -46372,7 +46367,7 @@ endobj /Type /Annot >> endobj -473 0 obj +472 0 obj << /Border [0 0 0] /Dest (_responses_21) /Subtype /Link @@ -46380,7 +46375,7 @@ endobj /Type /Annot >> endobj -474 0 obj +473 0 obj << /Border [0 0 0] /Dest (_consumes_4) /Subtype /Link @@ -46388,7 +46383,7 @@ endobj /Type /Annot >> endobj -475 0 obj +474 0 obj << /Border [0 0 0] /Dest (_consumes_4) /Subtype /Link @@ -46396,7 +46391,7 @@ endobj /Type /Annot >> endobj -476 0 obj +475 0 obj << /Border [0 0 0] /Dest (_produces_20) /Subtype /Link @@ -46404,7 +46399,7 @@ endobj /Type /Annot >> endobj -477 0 obj +476 0 obj << /Border [0 0 0] /Dest (_produces_20) /Subtype /Link @@ -46412,23 +46407,23 @@ endobj /Type /Annot >> endobj -478 0 obj +477 0 obj << /Border [0 0 0] -/Dest (_route99) +/Dest (_route68) /Subtype /Link /Rect [60.24000000000001 519.9599999999998 352.81158984375 534.2399999999998] /Type /Annot >> endobj -479 0 obj +478 0 obj << /Border [0 0 0] -/Dest (_route99) +/Dest (_route68) /Subtype /Link /Rect [552.021 519.9599999999998 563.76 534.2399999999998] /Type /Annot >> endobj -480 0 obj +479 0 obj << /Border [0 0 0] /Dest (_parameters_17) /Subtype /Link @@ -46436,7 +46431,7 @@ endobj /Type /Annot >> endobj -481 0 obj +480 0 obj << /Border [0 0 0] /Dest (_parameters_17) /Subtype /Link @@ -46444,7 +46439,7 @@ endobj /Type /Annot >> endobj -482 0 obj +481 0 obj << /Border [0 0 0] /Dest (_responses_22) /Subtype /Link @@ -46452,7 +46447,7 @@ endobj /Type /Annot >> endobj -483 0 obj +482 0 obj << /Border [0 0 0] /Dest (_responses_22) /Subtype /Link @@ -46460,7 +46455,7 @@ endobj /Type /Annot >> endobj -484 0 obj +483 0 obj << /Border [0 0 0] /Dest (_consumes_5) /Subtype /Link @@ -46468,7 +46463,7 @@ endobj /Type /Annot >> endobj -485 0 obj +484 0 obj << /Border [0 0 0] /Dest (_consumes_5) /Subtype /Link @@ -46476,7 +46471,7 @@ endobj /Type /Annot >> endobj -486 0 obj +485 0 obj << /Border [0 0 0] /Dest (_produces_21) /Subtype /Link @@ -46484,7 +46479,7 @@ endobj /Type /Annot >> endobj -487 0 obj +486 0 obj << /Border [0 0 0] /Dest (_produces_21) /Subtype /Link @@ -46492,23 +46487,23 @@ endobj /Type /Annot >> endobj -488 0 obj +487 0 obj << /Border [0 0 0] -/Dest (_route96) +/Dest (_route65) /Subtype /Link /Rect [60.24000000000001 427.5599999999997 212.0595 441.8399999999997] /Type /Annot >> endobj -489 0 obj +488 0 obj << /Border [0 0 0] -/Dest (_route96) +/Dest (_route65) /Subtype /Link /Rect [552.021 427.5599999999997 563.76 441.8399999999997] /Type /Annot >> endobj -490 0 obj +489 0 obj << /Border [0 0 0] /Dest (_parameters_18) /Subtype /Link @@ -46516,7 +46511,7 @@ endobj /Type /Annot >> endobj -491 0 obj +490 0 obj << /Border [0 0 0] /Dest (_parameters_18) /Subtype /Link @@ -46524,7 +46519,7 @@ endobj /Type /Annot >> endobj -492 0 obj +491 0 obj << /Border [0 0 0] /Dest (_responses_23) /Subtype /Link @@ -46532,7 +46527,7 @@ endobj /Type /Annot >> endobj -493 0 obj +492 0 obj << /Border [0 0 0] /Dest (_responses_23) /Subtype /Link @@ -46540,7 +46535,7 @@ endobj /Type /Annot >> endobj -494 0 obj +493 0 obj << /Border [0 0 0] /Dest (_produces_22) /Subtype /Link @@ -46548,7 +46543,7 @@ endobj /Type /Annot >> endobj -495 0 obj +494 0 obj << /Border [0 0 0] /Dest (_produces_22) /Subtype /Link @@ -46556,23 +46551,23 @@ endobj /Type /Annot >> endobj -496 0 obj +495 0 obj << /Border [0 0 0] -/Dest (_route118) +/Dest (_route87) /Subtype /Link /Rect [60.24000000000001 353.63999999999965 221.091755859375 367.9199999999996] /Type /Annot >> endobj -497 0 obj +496 0 obj << /Border [0 0 0] -/Dest (_route118) +/Dest (_route87) /Subtype /Link /Rect [552.021 353.63999999999965 563.76 367.9199999999996] /Type /Annot >> endobj -498 0 obj +497 0 obj << /Border [0 0 0] /Dest (_responses_24) /Subtype /Link @@ -46580,7 +46575,7 @@ endobj /Type /Annot >> endobj -499 0 obj +498 0 obj << /Border [0 0 0] /Dest (_responses_24) /Subtype /Link @@ -46588,7 +46583,7 @@ endobj /Type /Annot >> endobj -500 0 obj +499 0 obj << /Border [0 0 0] /Dest (_produces_23) /Subtype /Link @@ -46596,7 +46591,7 @@ endobj /Type /Annot >> endobj -501 0 obj +500 0 obj << /Border [0 0 0] /Dest (_produces_23) /Subtype /Link @@ -46604,7 +46599,7 @@ endobj /Type /Annot >> endobj -502 0 obj +501 0 obj << /Border [0 0 0] /Dest (_v2_policytoscamodels_yaml_policymodeltype_get) /Subtype /Link @@ -46612,7 +46607,7 @@ endobj /Type /Annot >> endobj -503 0 obj +502 0 obj << /Border [0 0 0] /Dest (_v2_policytoscamodels_yaml_policymodeltype_get) /Subtype /Link @@ -46620,7 +46615,7 @@ endobj /Type /Annot >> endobj -504 0 obj +503 0 obj << /Border [0 0 0] /Dest (_parameters_19) /Subtype /Link @@ -46628,7 +46623,7 @@ endobj /Type /Annot >> endobj -505 0 obj +504 0 obj << /Border [0 0 0] /Dest (_parameters_19) /Subtype /Link @@ -46636,7 +46631,7 @@ endobj /Type /Annot >> endobj -506 0 obj +505 0 obj << /Border [0 0 0] /Dest (_responses_25) /Subtype /Link @@ -46644,7 +46639,7 @@ endobj /Type /Annot >> endobj -507 0 obj +506 0 obj << /Border [0 0 0] /Dest (_responses_25) /Subtype /Link @@ -46652,7 +46647,7 @@ endobj /Type /Annot >> endobj -508 0 obj +507 0 obj << /Border [0 0 0] /Dest (_produces_24) /Subtype /Link @@ -46660,7 +46655,7 @@ endobj /Type /Annot >> endobj -509 0 obj +508 0 obj << /Border [0 0 0] /Dest (_produces_24) /Subtype /Link @@ -46668,7 +46663,7 @@ endobj /Type /Annot >> endobj -510 0 obj +509 0 obj << /Border [0 0 0] /Dest (_v2_policytoscamodels_policymodeltype_get) /Subtype /Link @@ -46676,7 +46671,7 @@ endobj /Type /Annot >> endobj -511 0 obj +510 0 obj << /Border [0 0 0] /Dest (_v2_policytoscamodels_policymodeltype_get) /Subtype /Link @@ -46684,7 +46679,7 @@ endobj /Type /Annot >> endobj -512 0 obj +511 0 obj << /Border [0 0 0] /Dest (_parameters_20) /Subtype /Link @@ -46692,7 +46687,7 @@ endobj /Type /Annot >> endobj -513 0 obj +512 0 obj << /Border [0 0 0] /Dest (_parameters_20) /Subtype /Link @@ -46700,7 +46695,7 @@ endobj /Type /Annot >> endobj -514 0 obj +513 0 obj << /Border [0 0 0] /Dest (_responses_26) /Subtype /Link @@ -46708,7 +46703,7 @@ endobj /Type /Annot >> endobj -515 0 obj +514 0 obj << /Border [0 0 0] /Dest (_responses_26) /Subtype /Link @@ -46716,7 +46711,7 @@ endobj /Type /Annot >> endobj -516 0 obj +515 0 obj << /Border [0 0 0] /Dest (_produces_25) /Subtype /Link @@ -46724,7 +46719,7 @@ endobj /Type /Annot >> endobj -517 0 obj +516 0 obj << /Border [0 0 0] /Dest (_produces_25) /Subtype /Link @@ -46732,23 +46727,23 @@ endobj /Type /Annot >> endobj -518 0 obj +517 0 obj << /Border [0 0 0] -/Dest (_route119) +/Dest (_route88) /Subtype /Link /Rect [60.24000000000001 150.35999999999956 318.73125585937504 164.63999999999956] /Type /Annot >> endobj -519 0 obj +518 0 obj << /Border [0 0 0] -/Dest (_route119) +/Dest (_route88) /Subtype /Link /Rect [552.021 150.35999999999956 563.76 164.63999999999956] /Type /Annot >> endobj -520 0 obj +519 0 obj << /Border [0 0 0] /Dest (_parameters_21) /Subtype /Link @@ -46756,7 +46751,7 @@ endobj /Type /Annot >> endobj -521 0 obj +520 0 obj << /Border [0 0 0] /Dest (_parameters_21) /Subtype /Link @@ -46764,7 +46759,7 @@ endobj /Type /Annot >> endobj -522 0 obj +521 0 obj << /Border [0 0 0] /Dest (_responses_27) /Subtype /Link @@ -46772,7 +46767,7 @@ endobj /Type /Annot >> endobj -523 0 obj +522 0 obj << /Border [0 0 0] /Dest (_responses_27) /Subtype /Link @@ -46780,7 +46775,7 @@ endobj /Type /Annot >> endobj -524 0 obj +523 0 obj << /Border [0 0 0] /Dest (_consumes_6) /Subtype /Link @@ -46788,7 +46783,7 @@ endobj /Type /Annot >> endobj -525 0 obj +524 0 obj << /Border [0 0 0] /Dest (_consumes_6) /Subtype /Link @@ -46796,7 +46791,7 @@ endobj /Type /Annot >> endobj -526 0 obj +525 0 obj << /Border [0 0 0] /Dest (_produces_26) /Subtype /Link @@ -46804,7 +46799,7 @@ endobj /Type /Annot >> endobj -527 0 obj +526 0 obj << /Border [0 0 0] /Dest (_produces_26) /Subtype /Link @@ -46812,23 +46807,23 @@ endobj /Type /Annot >> endobj -528 0 obj +527 0 obj << /Border [0 0 0] -/Dest (_route122) +/Dest (_route91) /Subtype /Link /Rect [60.24000000000001 57.95999999999961 175.8555 72.23999999999961] /Type /Annot >> endobj -529 0 obj +528 0 obj << /Border [0 0 0] -/Dest (_route122) +/Dest (_route91) /Subtype /Link /Rect [552.021 57.95999999999961 563.76 72.23999999999961] /Type /Annot >> endobj -530 0 obj +529 0 obj << /Border [0 0 0] /Dest (_responses_28) /Subtype /Link @@ -46836,7 +46831,7 @@ endobj /Type /Annot >> endobj -531 0 obj +530 0 obj << /Border [0 0 0] /Dest (_responses_28) /Subtype /Link @@ -46844,7 +46839,7 @@ endobj /Type /Annot >> endobj -532 0 obj +531 0 obj << /Border [0 0 0] /Dest (_produces_27) /Subtype /Link @@ -46852,7 +46847,7 @@ endobj /Type /Annot >> endobj -533 0 obj +532 0 obj << /Border [0 0 0] /Dest (_produces_27) /Subtype /Link @@ -46860,7 +46855,7 @@ endobj /Type /Annot >> endobj -534 0 obj +533 0 obj << /Border [0 0 0] /Dest (_v2_templates_names_get) /Subtype /Link @@ -46868,7 +46863,7 @@ endobj /Type /Annot >> endobj -535 0 obj +534 0 obj << /Border [0 0 0] /Dest (_v2_templates_names_get) /Subtype /Link @@ -46876,7 +46871,7 @@ endobj /Type /Annot >> endobj -536 0 obj +535 0 obj << /Border [0 0 0] /Dest (_responses_29) /Subtype /Link @@ -46884,7 +46879,7 @@ endobj /Type /Annot >> endobj -537 0 obj +536 0 obj << /Border [0 0 0] /Dest (_responses_29) /Subtype /Link @@ -46892,7 +46887,7 @@ endobj /Type /Annot >> endobj -538 0 obj +537 0 obj << /Border [0 0 0] /Dest (_produces_28) /Subtype /Link @@ -46900,7 +46895,7 @@ endobj /Type /Annot >> endobj -539 0 obj +538 0 obj << /Border [0 0 0] /Dest (_produces_28) /Subtype /Link @@ -46908,7 +46903,7 @@ endobj /Type /Annot >> endobj -540 0 obj +539 0 obj << /Border [0 0 0] /Dest (_v2_templates_templatename_get) /Subtype /Link @@ -46916,7 +46911,7 @@ endobj /Type /Annot >> endobj -541 0 obj +540 0 obj << /Border [0 0 0] /Dest (_v2_templates_templatename_get) /Subtype /Link @@ -46924,7 +46919,7 @@ endobj /Type /Annot >> endobj -542 0 obj +541 0 obj << /Border [0 0 0] /Dest (_parameters_22) /Subtype /Link @@ -46932,7 +46927,7 @@ endobj /Type /Annot >> endobj -543 0 obj +542 0 obj << /Border [0 0 0] /Dest (_parameters_22) /Subtype /Link @@ -46940,7 +46935,7 @@ endobj /Type /Annot >> endobj -544 0 obj +543 0 obj << /Border [0 0 0] /Dest (_responses_30) /Subtype /Link @@ -46948,7 +46943,7 @@ endobj /Type /Annot >> endobj -545 0 obj +544 0 obj << /Border [0 0 0] /Dest (_responses_30) /Subtype /Link @@ -46956,7 +46951,7 @@ endobj /Type /Annot >> endobj -546 0 obj +545 0 obj << /Border [0 0 0] /Dest (_produces_29) /Subtype /Link @@ -46964,7 +46959,7 @@ endobj /Type /Annot >> endobj -547 0 obj +546 0 obj << /Border [0 0 0] /Dest (_produces_29) /Subtype /Link @@ -46972,7 +46967,7 @@ endobj /Type /Annot >> endobj -548 0 obj +547 0 obj << /Border [0 0 0] /Dest (_definitions) /Subtype /Link @@ -46980,7 +46975,7 @@ endobj /Type /Annot >> endobj -549 0 obj +548 0 obj << /Border [0 0 0] /Dest (_definitions) /Subtype /Link @@ -46988,7 +46983,7 @@ endobj /Type /Annot >> endobj -550 0 obj +549 0 obj << /Border [0 0 0] /Dest (_cldshealthcheck) /Subtype /Link @@ -46996,7 +46991,7 @@ endobj /Type /Annot >> endobj -551 0 obj +550 0 obj << /Border [0 0 0] /Dest (_cldshealthcheck) /Subtype /Link @@ -47004,7 +46999,7 @@ endobj /Type /Annot >> endobj -552 0 obj +551 0 obj << /Border [0 0 0] /Dest (_dictionary) /Subtype /Link @@ -47012,7 +47007,7 @@ endobj /Type /Annot >> endobj -553 0 obj +552 0 obj << /Border [0 0 0] /Dest (_dictionary) /Subtype /Link @@ -47020,7 +47015,7 @@ endobj /Type /Annot >> endobj -554 0 obj +553 0 obj << /Border [0 0 0] /Dest (_dictionaryelement) /Subtype /Link @@ -47028,7 +47023,7 @@ endobj /Type /Annot >> endobj -555 0 obj +554 0 obj << /Border [0 0 0] /Dest (_dictionaryelement) /Subtype /Link @@ -47036,7 +47031,7 @@ endobj /Type /Annot >> endobj -556 0 obj +555 0 obj << /Border [0 0 0] /Dest (_externalcomponent) /Subtype /Link @@ -47044,7 +47039,7 @@ endobj /Type /Annot >> endobj -557 0 obj +556 0 obj << /Border [0 0 0] /Dest (_externalcomponent) /Subtype /Link @@ -47052,7 +47047,7 @@ endobj /Type /Annot >> endobj -558 0 obj +557 0 obj << /Border [0 0 0] /Dest (_externalcomponentstate) /Subtype /Link @@ -47060,7 +47055,7 @@ endobj /Type /Annot >> endobj -559 0 obj +558 0 obj << /Border [0 0 0] /Dest (_externalcomponentstate) /Subtype /Link @@ -47068,7 +47063,7 @@ endobj /Type /Annot >> endobj -560 0 obj +559 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -47076,7 +47071,7 @@ endobj /Type /Annot >> endobj -561 0 obj +560 0 obj << /Border [0 0 0] /Dest (_jsonarray) /Subtype /Link @@ -47084,7 +47079,7 @@ endobj /Type /Annot >> endobj -562 0 obj +561 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -47092,7 +47087,7 @@ endobj /Type /Annot >> endobj -563 0 obj +562 0 obj << /Border [0 0 0] /Dest (_jsonnull) /Subtype /Link @@ -47100,7 +47095,7 @@ endobj /Type /Annot >> endobj -564 0 obj +563 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -47108,7 +47103,7 @@ endobj /Type /Annot >> endobj -565 0 obj +564 0 obj << /Border [0 0 0] /Dest (_jsonobject) /Subtype /Link @@ -47116,7 +47111,7 @@ endobj /Type /Annot >> endobj -566 0 obj +565 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -47124,7 +47119,7 @@ endobj /Type /Annot >> endobj -567 0 obj +566 0 obj << /Border [0 0 0] /Dest (_jsonprimitive) /Subtype /Link @@ -47132,7 +47127,7 @@ endobj /Type /Annot >> endobj -568 0 obj +567 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -47140,7 +47135,7 @@ endobj /Type /Annot >> endobj -569 0 obj +568 0 obj << /Border [0 0 0] /Dest (_loop) /Subtype /Link @@ -47148,7 +47143,7 @@ endobj /Type /Annot >> endobj -570 0 obj +569 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -47156,7 +47151,7 @@ endobj /Type /Annot >> endobj -571 0 obj +570 0 obj << /Border [0 0 0] /Dest (_loopelementmodel) /Subtype /Link @@ -47164,7 +47159,7 @@ endobj /Type /Annot >> endobj -572 0 obj +571 0 obj << /Border [0 0 0] /Dest (_looplog) /Subtype /Link @@ -47172,7 +47167,7 @@ endobj /Type /Annot >> endobj -573 0 obj +572 0 obj << /Border [0 0 0] /Dest (_looplog) /Subtype /Link @@ -47180,7 +47175,7 @@ endobj /Type /Annot >> endobj -574 0 obj +573 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -47188,7 +47183,7 @@ endobj /Type /Annot >> endobj -575 0 obj +574 0 obj << /Border [0 0 0] /Dest (_looptemplate) /Subtype /Link @@ -47196,7 +47191,7 @@ endobj /Type /Annot >> endobj -576 0 obj +575 0 obj << /Border [0 0 0] /Dest (_looptemplateloopelementmodel) /Subtype /Link @@ -47204,7 +47199,7 @@ endobj /Type /Annot >> endobj -577 0 obj +576 0 obj << /Border [0 0 0] /Dest (_looptemplateloopelementmodel) /Subtype /Link @@ -47212,7 +47207,7 @@ endobj /Type /Annot >> endobj -578 0 obj +577 0 obj << /Border [0 0 0] /Dest (_microservicepolicy) /Subtype /Link @@ -47220,7 +47215,7 @@ endobj /Type /Annot >> endobj -579 0 obj +578 0 obj << /Border [0 0 0] /Dest (_microservicepolicy) /Subtype /Link @@ -47228,7 +47223,7 @@ endobj /Type /Annot >> endobj -580 0 obj +579 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -47236,7 +47231,7 @@ endobj /Type /Annot >> endobj -581 0 obj +580 0 obj << /Border [0 0 0] /Dest (_number) /Subtype /Link @@ -47244,7 +47239,7 @@ endobj /Type /Annot >> endobj -582 0 obj +581 0 obj << /Border [0 0 0] /Dest (_operationalpolicy) /Subtype /Link @@ -47252,7 +47247,7 @@ endobj /Type /Annot >> endobj -583 0 obj +582 0 obj << /Border [0 0 0] /Dest (_operationalpolicy) /Subtype /Link @@ -47260,7 +47255,7 @@ endobj /Type /Annot >> endobj -584 0 obj +583 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -47268,7 +47263,7 @@ endobj /Type /Annot >> endobj -585 0 obj +584 0 obj << /Border [0 0 0] /Dest (_policymodel) /Subtype /Link @@ -47276,7 +47271,7 @@ endobj /Type /Annot >> endobj -586 0 obj +585 0 obj << /Border [0 0 0] /Dest (_service) /Subtype /Link @@ -47284,7 +47279,7 @@ endobj /Type /Annot >> endobj -587 0 obj +586 0 obj << /Border [0 0 0] /Dest (_service) /Subtype /Link @@ -47292,7 +47287,7 @@ endobj /Type /Annot >> endobj -588 0 obj +587 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 612.0 792.0] @@ -47320,1299 +47315,1299 @@ Q endstream endobj -589 0 obj +588 0 obj << /Type /Outlines /Count 143 -/First 590 0 R -/Last 713 0 R +/First 589 0 R +/Last 712 0 R >> endobj -590 0 obj +589 0 obj << /Title <feff0043006c0061006d0070002000520065007300740020004100500049> -/Parent 589 0 R +/Parent 588 0 R /Count 0 -/Next 591 0 R +/Next 590 0 R /Dest [7 0 R /XYZ 0 792.0 null] >> endobj -591 0 obj +590 0 obj << /Title <feff005400610062006c00650020006f006600200043006f006e00740065006e00740073> -/Parent 589 0 R +/Parent 588 0 R /Count 0 -/Next 592 0 R -/Prev 590 0 R +/Next 591 0 R +/Prev 589 0 R /Dest [10 0 R /XYZ 0 792.0 null] >> endobj -592 0 obj +591 0 obj << /Title <feff004300680061007000740065007200200031002e0020004f0076006500720076006900650077> -/Parent 589 0 R +/Parent 588 0 R /Count 2 -/First 593 0 R -/Last 594 0 R -/Next 595 0 R -/Prev 591 0 R +/First 592 0 R +/Last 593 0 R +/Next 594 0 R +/Prev 590 0 R /Dest [18 0 R /XYZ 0 792.0 null] >> endobj -593 0 obj +592 0 obj << /Title <feff0031002e0031002e002000560065007200730069006f006e00200069006e0066006f0072006d006100740069006f006e> -/Parent 592 0 R +/Parent 591 0 R /Count 0 -/Next 594 0 R +/Next 593 0 R /Dest [18 0 R /XYZ 0 712.0799999999999 null] >> endobj -594 0 obj +593 0 obj << /Title <feff0031002e0032002e002000550052004900200073006300680065006d0065> -/Parent 592 0 R +/Parent 591 0 R /Count 0 -/Prev 593 0 R +/Prev 592 0 R /Dest [18 0 R /XYZ 0 644.22 null] >> endobj -595 0 obj +594 0 obj << /Title <feff004300680061007000740065007200200032002e002000500061007400680073> -/Parent 589 0 R +/Parent 588 0 R /Count 117 -/First 596 0 R -/Last 709 0 R -/Next 713 0 R -/Prev 592 0 R +/First 595 0 R +/Last 708 0 R +/Next 712 0 R +/Prev 591 0 R /Dest [27 0 R /XYZ 0 792.0 null] >> endobj -596 0 obj +595 0 obj << /Title <feff0032002e0031002e00200047004500540020002f00760031002f006800650061006c007400680063006800650063006b> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 597 0 R -/Last 598 0 R -/Next 599 0 R +/First 596 0 R +/Last 597 0 R +/Next 598 0 R /Dest [27 0 R /XYZ 0 712.0799999999999 null] >> endobj -597 0 obj +596 0 obj << /Title <feff0032002e0031002e0031002e00200052006500730070006f006e007300650073> -/Parent 596 0 R +/Parent 595 0 R /Count 0 -/Next 598 0 R +/Next 597 0 R /Dest [27 0 R /XYZ 0 672.0 null] >> endobj -598 0 obj +597 0 obj << /Title <feff0032002e0031002e0032002e002000500072006f00640075006300650073> -/Parent 596 0 R +/Parent 595 0 R /Count 0 -/Prev 597 0 R +/Prev 596 0 R /Dest [27 0 R /XYZ 0 566.8800000000001 null] >> endobj -599 0 obj +598 0 obj << /Title <feff0032002e0032002e00200047004500540020002f00760031002f0075007300650072002f0067006500740055007300650072> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 600 0 R -/Last 601 0 R -/Next 602 0 R -/Prev 596 0 R +/First 599 0 R +/Last 600 0 R +/Next 601 0 R +/Prev 595 0 R /Dest [27 0 R /XYZ 0 510.60000000000025 null] >> endobj -600 0 obj +599 0 obj << /Title <feff0032002e0032002e0031002e00200052006500730070006f006e007300650073> -/Parent 599 0 R +/Parent 598 0 R /Count 0 -/Next 601 0 R +/Next 600 0 R /Dest [27 0 R /XYZ 0 470.5200000000002 null] >> endobj -601 0 obj +600 0 obj << /Title <feff0032002e0032002e0032002e002000500072006f00640075006300650073> -/Parent 599 0 R +/Parent 598 0 R /Count 0 -/Prev 600 0 R +/Prev 599 0 R /Dest [27 0 R /XYZ 0 379.6800000000002 null] >> endobj -602 0 obj +601 0 obj << /Title <feff0032002e0033002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 603 0 R -/Last 604 0 R -/Next 605 0 R -/Prev 599 0 R +/First 602 0 R +/Last 603 0 R +/Next 604 0 R +/Prev 598 0 R /Dest [27 0 R /XYZ 0 323.40000000000015 null] >> endobj -603 0 obj +602 0 obj << /Title <feff0032002e0033002e0031002e00200052006500730070006f006e007300650073> -/Parent 602 0 R +/Parent 601 0 R /Count 0 -/Next 604 0 R +/Next 603 0 R /Dest [27 0 R /XYZ 0 283.3200000000001 null] >> endobj -604 0 obj +603 0 obj << /Title <feff0032002e0033002e0032002e002000500072006f00640075006300650073> -/Parent 602 0 R +/Parent 601 0 R /Count 0 -/Prev 603 0 R +/Prev 602 0 R /Dest [27 0 R /XYZ 0 178.2000000000001 null] >> endobj -605 0 obj +604 0 obj << /Title <feff0032002e0034002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079> -/Parent 595 0 R +/Parent 594 0 R /Count 4 -/First 606 0 R -/Last 609 0 R -/Next 610 0 R -/Prev 602 0 R +/First 605 0 R +/Last 608 0 R +/Next 609 0 R +/Prev 601 0 R /Dest [27 0 R /XYZ 0 121.92000000000007 null] >> endobj -606 0 obj +605 0 obj << /Title <feff0032002e0034002e0031002e00200050006100720061006d00650074006500720073> -/Parent 605 0 R +/Parent 604 0 R /Count 0 -/Next 607 0 R +/Next 606 0 R /Dest [43 0 R /XYZ 0 792.0 null] >> endobj -607 0 obj +606 0 obj << /Title <feff0032002e0034002e0032002e00200052006500730070006f006e007300650073> -/Parent 605 0 R +/Parent 604 0 R /Count 0 -/Next 608 0 R -/Prev 606 0 R +/Next 607 0 R +/Prev 605 0 R /Dest [43 0 R /XYZ 0 653.2800000000002 null] >> endobj -608 0 obj +607 0 obj << /Title <feff0032002e0034002e0033002e00200043006f006e00730075006d00650073> -/Parent 605 0 R +/Parent 604 0 R /Count 0 -/Next 609 0 R -/Prev 607 0 R +/Next 608 0 R +/Prev 606 0 R /Dest [43 0 R /XYZ 0 548.1600000000003 null] >> endobj -609 0 obj +608 0 obj << /Title <feff0032002e0034002e0034002e002000500072006f00640075006300650073> -/Parent 605 0 R +/Parent 604 0 R /Count 0 -/Prev 608 0 R +/Prev 607 0 R /Dest [43 0 R /XYZ 0 491.88000000000045 null] >> endobj -610 0 obj +609 0 obj << /Title <feff0032002e0035002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007300650063006f006e0064006100720079002f006e0061006d00650073> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 611 0 R -/Last 612 0 R -/Next 613 0 R -/Prev 605 0 R +/First 610 0 R +/Last 611 0 R +/Next 612 0 R +/Prev 604 0 R /Dest [43 0 R /XYZ 0 435.6000000000004 null] >> endobj -611 0 obj +610 0 obj << /Title <feff0032002e0035002e0031002e00200052006500730070006f006e007300650073> -/Parent 610 0 R +/Parent 609 0 R /Count 0 -/Next 612 0 R +/Next 611 0 R /Dest [43 0 R /XYZ 0 395.5200000000004 null] >> endobj -612 0 obj +611 0 obj << /Title <feff0032002e0035002e0032002e002000500072006f00640075006300650073> -/Parent 610 0 R +/Parent 609 0 R /Count 0 -/Prev 611 0 R +/Prev 610 0 R /Dest [43 0 R /XYZ 0 290.4000000000003 null] >> endobj -613 0 obj +612 0 obj << /Title <feff0032002e0036002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007b00640069006300740069006f006e006100720079004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 614 0 R -/Last 616 0 R -/Next 617 0 R -/Prev 610 0 R +/First 613 0 R +/Last 615 0 R +/Next 616 0 R +/Prev 609 0 R /Dest [43 0 R /XYZ 0 234.1200000000003 null] >> endobj -614 0 obj +613 0 obj << /Title <feff0032002e0036002e0031002e00200050006100720061006d00650074006500720073> -/Parent 613 0 R +/Parent 612 0 R /Count 0 -/Next 615 0 R +/Next 614 0 R /Dest [43 0 R /XYZ 0 194.04000000000028 null] >> endobj -615 0 obj +614 0 obj << /Title <feff0032002e0036002e0032002e00200052006500730070006f006e007300650073> -/Parent 613 0 R +/Parent 612 0 R /Count 0 -/Next 616 0 R -/Prev 614 0 R +/Next 615 0 R +/Prev 613 0 R /Dest [58 0 R /XYZ 0 792.0 null] >> endobj -616 0 obj +615 0 obj << /Title <feff0032002e0036002e0033002e002000500072006f00640075006300650073> -/Parent 613 0 R +/Parent 612 0 R /Count 0 -/Prev 615 0 R +/Prev 614 0 R /Dest [58 0 R /XYZ 0 653.2800000000002 null] >> endobj -617 0 obj +616 0 obj << /Title <feff0032002e0037002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 4 -/First 618 0 R -/Last 621 0 R -/Next 622 0 R -/Prev 613 0 R +/First 617 0 R +/Last 620 0 R +/Next 621 0 R +/Prev 612 0 R /Dest [58 0 R /XYZ 0 597.0000000000003 null] >> endobj -618 0 obj +617 0 obj << /Title <feff0032002e0037002e0031002e00200050006100720061006d00650074006500720073> -/Parent 617 0 R +/Parent 616 0 R /Count 0 -/Next 619 0 R +/Next 618 0 R /Dest [58 0 R /XYZ 0 556.9200000000004 null] >> endobj -619 0 obj +618 0 obj << /Title <feff0032002e0037002e0032002e00200052006500730070006f006e007300650073> -/Parent 617 0 R +/Parent 616 0 R /Count 0 -/Next 620 0 R -/Prev 618 0 R +/Next 619 0 R +/Prev 617 0 R /Dest [58 0 R /XYZ 0 414.2400000000005 null] >> endobj -620 0 obj +619 0 obj << /Title <feff0032002e0037002e0033002e00200043006f006e00730075006d00650073> -/Parent 617 0 R +/Parent 616 0 R /Count 0 -/Next 621 0 R -/Prev 619 0 R +/Next 620 0 R +/Prev 618 0 R /Dest [58 0 R /XYZ 0 309.12000000000046 null] >> endobj -621 0 obj +620 0 obj << /Title <feff0032002e0037002e0034002e002000500072006f00640075006300650073> -/Parent 617 0 R +/Parent 616 0 R /Count 0 -/Prev 620 0 R +/Prev 619 0 R /Dest [58 0 R /XYZ 0 252.84000000000043 null] >> endobj -622 0 obj +621 0 obj << /Title <feff0032002e0038002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 623 0 R -/Last 625 0 R -/Next 626 0 R -/Prev 617 0 R +/First 622 0 R +/Last 624 0 R +/Next 625 0 R +/Prev 616 0 R /Dest [58 0 R /XYZ 0 196.5600000000004 null] >> endobj -623 0 obj +622 0 obj << /Title <feff0032002e0038002e0031002e00200050006100720061006d00650074006500720073> -/Parent 622 0 R +/Parent 621 0 R /Count 0 -/Next 624 0 R +/Next 623 0 R /Dest [58 0 R /XYZ 0 156.4800000000004 null] >> endobj -624 0 obj +623 0 obj << /Title <feff0032002e0038002e0032002e00200052006500730070006f006e007300650073> -/Parent 622 0 R +/Parent 621 0 R /Count 0 -/Next 625 0 R -/Prev 623 0 R +/Next 624 0 R +/Prev 622 0 R /Dest [72 0 R /XYZ 0 792.0 null] >> endobj -625 0 obj +624 0 obj << /Title <feff0032002e0038002e0033002e002000500072006f00640075006300650073> -/Parent 622 0 R +/Parent 621 0 R /Count 0 -/Prev 624 0 R +/Prev 623 0 R /Dest [72 0 R /XYZ 0 667.5600000000002 null] >> endobj -626 0 obj +625 0 obj << /Title <feff0032002e0039002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d002f0065006c0065006d0065006e00740073002f007b00730068006f00720074004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 627 0 R -/Last 629 0 R -/Next 630 0 R -/Prev 622 0 R +/First 626 0 R +/Last 628 0 R +/Next 629 0 R +/Prev 621 0 R /Dest [72 0 R /XYZ 0 611.2800000000003 null] >> endobj -627 0 obj +626 0 obj << /Title <feff0032002e0039002e0031002e00200050006100720061006d00650074006500720073> -/Parent 626 0 R +/Parent 625 0 R /Count 0 -/Next 628 0 R +/Next 627 0 R /Dest [72 0 R /XYZ 0 543.1200000000005 null] >> endobj -628 0 obj +627 0 obj << /Title <feff0032002e0039002e0032002e00200052006500730070006f006e007300650073> -/Parent 626 0 R +/Parent 625 0 R /Count 0 -/Next 629 0 R -/Prev 627 0 R +/Next 628 0 R +/Prev 626 0 R /Dest [72 0 R /XYZ 0 400.44000000000057 null] >> endobj -629 0 obj +628 0 obj << /Title <feff0032002e0039002e0033002e002000500072006f00640075006300650073> -/Parent 626 0 R +/Parent 625 0 R /Count 0 -/Prev 628 0 R +/Prev 627 0 R /Dest [72 0 R /XYZ 0 309.6000000000006 null] >> endobj -630 0 obj +629 0 obj << /Title <feff0032002e00310030002e00200050005500540020002f00760032002f006c006f006f0070002f00640065006c006500740065002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 631 0 R -/Last 632 0 R -/Next 633 0 R -/Prev 626 0 R +/First 630 0 R +/Last 631 0 R +/Next 632 0 R +/Prev 625 0 R /Dest [72 0 R /XYZ 0 253.32000000000056 null] >> endobj -631 0 obj +630 0 obj << /Title <feff0032002e00310030002e0031002e00200050006100720061006d00650074006500720073> -/Parent 630 0 R +/Parent 629 0 R /Count 0 -/Next 632 0 R +/Next 631 0 R /Dest [72 0 R /XYZ 0 213.24000000000055 null] >> endobj -632 0 obj +631 0 obj << /Title <feff0032002e00310030002e0032002e00200052006500730070006f006e007300650073> -/Parent 630 0 R +/Parent 629 0 R /Count 0 -/Prev 631 0 R +/Prev 630 0 R /Dest [72 0 R /XYZ 0 108.12000000000052 null] >> endobj -633 0 obj +632 0 obj << /Title <feff0032002e00310031002e00200050005500540020002f00760032002f006c006f006f0070002f006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 634 0 R -/Last 636 0 R -/Next 637 0 R -/Prev 630 0 R +/First 633 0 R +/Last 635 0 R +/Next 636 0 R +/Prev 629 0 R /Dest [84 0 R /XYZ 0 697.44 null] >> endobj -634 0 obj +633 0 obj << /Title <feff0032002e00310031002e0031002e00200050006100720061006d00650074006500720073> -/Parent 633 0 R +/Parent 632 0 R /Count 0 -/Next 635 0 R +/Next 634 0 R /Dest [84 0 R /XYZ 0 657.3600000000001 null] >> endobj -635 0 obj +634 0 obj << /Title <feff0032002e00310031002e0032002e00200052006500730070006f006e007300650073> -/Parent 633 0 R +/Parent 632 0 R /Count 0 -/Next 636 0 R -/Prev 634 0 R +/Next 635 0 R +/Prev 633 0 R /Dest [84 0 R /XYZ 0 552.2400000000002 null] >> endobj -636 0 obj +635 0 obj << /Title <feff0032002e00310031002e0033002e002000500072006f00640075006300650073> -/Parent 633 0 R +/Parent 632 0 R /Count 0 -/Prev 635 0 R +/Prev 634 0 R /Dest [84 0 R /XYZ 0 447.12000000000035 null] >> endobj -637 0 obj +636 0 obj << /Title <feff0032002e00310032002e00200047004500540020002f00760032002f006c006f006f0070002f0067006500740041006c006c004e0061006d00650073> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 638 0 R -/Last 639 0 R -/Next 640 0 R -/Prev 633 0 R +/First 637 0 R +/Last 638 0 R +/Next 639 0 R +/Prev 632 0 R /Dest [84 0 R /XYZ 0 390.8400000000003 null] >> endobj -638 0 obj +637 0 obj << /Title <feff0032002e00310032002e0031002e00200052006500730070006f006e007300650073> -/Parent 637 0 R +/Parent 636 0 R /Count 0 -/Next 639 0 R +/Next 638 0 R /Dest [84 0 R /XYZ 0 350.7600000000003 null] >> endobj -639 0 obj +638 0 obj << /Title <feff0032002e00310032002e0032002e002000500072006f00640075006300650073> -/Parent 637 0 R +/Parent 636 0 R /Count 0 -/Prev 638 0 R +/Prev 637 0 R /Dest [84 0 R /XYZ 0 245.6400000000002 null] >> endobj -640 0 obj +639 0 obj << /Title <feff0032002e00310033002e00200047004500540020002f00760032002f006c006f006f0070002f006700650074007300740061007400750073002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 641 0 R -/Last 643 0 R -/Next 644 0 R -/Prev 637 0 R +/First 640 0 R +/Last 642 0 R +/Next 643 0 R +/Prev 636 0 R /Dest [84 0 R /XYZ 0 189.36000000000018 null] >> endobj -641 0 obj +640 0 obj << /Title <feff0032002e00310033002e0031002e00200050006100720061006d00650074006500720073> -/Parent 640 0 R +/Parent 639 0 R /Count 0 -/Next 642 0 R +/Next 641 0 R /Dest [84 0 R /XYZ 0 149.28000000000017 null] >> endobj -642 0 obj +641 0 obj << /Title <feff0032002e00310033002e0032002e00200052006500730070006f006e007300650073> -/Parent 640 0 R +/Parent 639 0 R /Count 0 -/Next 643 0 R -/Prev 641 0 R +/Next 642 0 R +/Prev 640 0 R /Dest [97 0 R /XYZ 0 792.0 null] >> endobj -643 0 obj +642 0 obj << /Title <feff0032002e00310033002e0033002e002000500072006f00640075006300650073> -/Parent 640 0 R +/Parent 639 0 R /Count 0 -/Prev 642 0 R +/Prev 641 0 R /Dest [97 0 R /XYZ 0 653.2800000000002 null] >> endobj -644 0 obj +643 0 obj << /Title <feff0032002e00310034002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500660072006500730068004f00700050006f006c006900630079004a0073006f006e0053006300680065006d0061002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 645 0 R -/Last 647 0 R -/Next 648 0 R -/Prev 640 0 R +/First 644 0 R +/Last 646 0 R +/Next 647 0 R +/Prev 639 0 R /Dest [97 0 R /XYZ 0 597.0000000000003 null] >> endobj -645 0 obj +644 0 obj << /Title <feff0032002e00310034002e0031002e00200050006100720061006d00650074006500720073> -/Parent 644 0 R +/Parent 643 0 R /Count 0 -/Next 646 0 R +/Next 645 0 R /Dest [97 0 R /XYZ 0 528.8400000000005 null] >> endobj -646 0 obj +645 0 obj << /Title <feff0032002e00310034002e0032002e00200052006500730070006f006e007300650073> -/Parent 644 0 R +/Parent 643 0 R /Count 0 -/Next 647 0 R -/Prev 645 0 R +/Next 646 0 R +/Prev 644 0 R /Dest [97 0 R /XYZ 0 423.72000000000054 null] >> endobj -647 0 obj +646 0 obj << /Title <feff0032002e00310034002e0033002e002000500072006f00640075006300650073> -/Parent 644 0 R +/Parent 643 0 R /Count 0 -/Prev 646 0 R +/Prev 645 0 R /Dest [97 0 R /XYZ 0 318.6000000000005 null] >> endobj -648 0 obj +647 0 obj << /Title <feff0032002e00310035002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500730074006100720074002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 649 0 R -/Last 651 0 R -/Next 652 0 R -/Prev 644 0 R +/First 648 0 R +/Last 650 0 R +/Next 651 0 R +/Prev 643 0 R /Dest [97 0 R /XYZ 0 262.32000000000045 null] >> endobj -649 0 obj +648 0 obj << /Title <feff0032002e00310035002e0031002e00200050006100720061006d00650074006500720073> -/Parent 648 0 R +/Parent 647 0 R /Count 0 -/Next 650 0 R +/Next 649 0 R /Dest [97 0 R /XYZ 0 222.24000000000046 null] >> endobj -650 0 obj +649 0 obj << /Title <feff0032002e00310035002e0032002e00200052006500730070006f006e007300650073> -/Parent 648 0 R +/Parent 647 0 R /Count 0 -/Next 651 0 R -/Prev 649 0 R +/Next 650 0 R +/Prev 648 0 R /Dest [97 0 R /XYZ 0 117.12000000000043 null] >> endobj -651 0 obj +650 0 obj << /Title <feff0032002e00310035002e0033002e002000500072006f00640075006300650073> -/Parent 648 0 R +/Parent 647 0 R /Count 0 -/Prev 650 0 R +/Prev 649 0 R /Dest [110 0 R /XYZ 0 683.1600000000001 null] >> endobj -652 0 obj +651 0 obj << /Title <feff0032002e00310036002e00200050005500540020002f00760032002f006c006f006f0070002f00730074006f0070002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 653 0 R -/Last 655 0 R -/Next 656 0 R -/Prev 648 0 R +/First 652 0 R +/Last 654 0 R +/Next 655 0 R +/Prev 647 0 R /Dest [110 0 R /XYZ 0 626.8800000000002 null] >> endobj -653 0 obj +652 0 obj << /Title <feff0032002e00310036002e0031002e00200050006100720061006d00650074006500720073> -/Parent 652 0 R +/Parent 651 0 R /Count 0 -/Next 654 0 R +/Next 653 0 R /Dest [110 0 R /XYZ 0 586.8000000000003 null] >> endobj -654 0 obj +653 0 obj << /Title <feff0032002e00310036002e0032002e00200052006500730070006f006e007300650073> -/Parent 652 0 R +/Parent 651 0 R /Count 0 -/Next 655 0 R -/Prev 653 0 R +/Next 654 0 R +/Prev 652 0 R /Dest [110 0 R /XYZ 0 481.68000000000046 null] >> endobj -655 0 obj +654 0 obj << /Title <feff0032002e00310036002e0033002e002000500072006f00640075006300650073> -/Parent 652 0 R +/Parent 651 0 R /Count 0 -/Prev 654 0 R +/Prev 653 0 R /Dest [110 0 R /XYZ 0 376.5600000000004 null] >> endobj -656 0 obj +655 0 obj << /Title <feff0032002e00310037002e00200050005500540020002f00760032002f006c006f006f0070002f007300750062006d00690074002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 657 0 R -/Last 659 0 R -/Next 660 0 R -/Prev 652 0 R +/First 656 0 R +/Last 658 0 R +/Next 659 0 R +/Prev 651 0 R /Dest [110 0 R /XYZ 0 320.28000000000037 null] >> endobj -657 0 obj +656 0 obj << /Title <feff0032002e00310037002e0031002e00200050006100720061006d00650074006500720073> -/Parent 656 0 R +/Parent 655 0 R /Count 0 -/Next 658 0 R +/Next 657 0 R /Dest [110 0 R /XYZ 0 280.20000000000033 null] >> endobj -658 0 obj +657 0 obj << /Title <feff0032002e00310037002e0032002e00200052006500730070006f006e007300650073> -/Parent 656 0 R +/Parent 655 0 R /Count 0 -/Next 659 0 R -/Prev 657 0 R +/Next 658 0 R +/Prev 656 0 R /Dest [110 0 R /XYZ 0 175.08000000000033 null] >> endobj -659 0 obj +658 0 obj << /Title <feff0032002e00310037002e0033002e002000500072006f00640075006300650073> -/Parent 656 0 R +/Parent 655 0 R /Count 0 -/Prev 658 0 R +/Prev 657 0 R /Dest [124 0 R /XYZ 0 792.0 null] >> endobj -660 0 obj +659 0 obj << /Title <feff0032002e00310038002e00200047004500540020002f00760032002f006c006f006f0070002f0073007600670052006500700072006500730065006e0074006100740069006f006e002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 661 0 R -/Last 663 0 R -/Next 664 0 R -/Prev 656 0 R +/First 660 0 R +/Last 662 0 R +/Next 663 0 R +/Prev 655 0 R /Dest [124 0 R /XYZ 0 702.1200000000001 null] >> endobj -661 0 obj +660 0 obj << /Title <feff0032002e00310038002e0031002e00200050006100720061006d00650074006500720073> -/Parent 660 0 R +/Parent 659 0 R /Count 0 -/Next 662 0 R +/Next 661 0 R /Dest [124 0 R /XYZ 0 662.0400000000002 null] >> endobj -662 0 obj +661 0 obj << /Title <feff0032002e00310038002e0032002e00200052006500730070006f006e007300650073> -/Parent 660 0 R +/Parent 659 0 R /Count 0 -/Next 663 0 R -/Prev 661 0 R +/Next 662 0 R +/Prev 660 0 R /Dest [124 0 R /XYZ 0 556.9200000000003 null] >> endobj -663 0 obj +662 0 obj << /Title <feff0032002e00310038002e0033002e002000500072006f00640075006300650073> -/Parent 660 0 R +/Parent 659 0 R /Count 0 -/Prev 662 0 R +/Prev 661 0 R /Dest [124 0 R /XYZ 0 451.8000000000004 null] >> endobj -664 0 obj +663 0 obj << /Title <feff0032002e00310039002e00200050005500540020002f00760032002f006c006f006f0070002f0075006e006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 665 0 R -/Last 667 0 R -/Next 668 0 R -/Prev 660 0 R +/First 664 0 R +/Last 666 0 R +/Next 667 0 R +/Prev 659 0 R /Dest [124 0 R /XYZ 0 395.5200000000004 null] >> endobj -665 0 obj +664 0 obj << /Title <feff0032002e00310039002e0031002e00200050006100720061006d00650074006500720073> -/Parent 664 0 R +/Parent 663 0 R /Count 0 -/Next 666 0 R +/Next 665 0 R /Dest [124 0 R /XYZ 0 355.44000000000034 null] >> endobj -666 0 obj +665 0 obj << /Title <feff0032002e00310039002e0032002e00200052006500730070006f006e007300650073> -/Parent 664 0 R +/Parent 663 0 R /Count 0 -/Next 667 0 R -/Prev 665 0 R +/Next 666 0 R +/Prev 664 0 R /Dest [124 0 R /XYZ 0 250.32000000000033 null] >> endobj -667 0 obj +666 0 obj << /Title <feff0032002e00310039002e0033002e002000500072006f00640075006300650073> -/Parent 664 0 R +/Parent 663 0 R /Count 0 -/Prev 666 0 R +/Prev 665 0 R /Dest [124 0 R /XYZ 0 145.2000000000003 null] >> endobj -668 0 obj +667 0 obj << /Title <feff0032002e00320030002e00200050004f005300540020002f00760032002f006c006f006f0070002f0075007000640061007400650047006c006f00620061006c00500072006f0070006500720074006900650073002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 4 -/First 669 0 R -/Last 672 0 R -/Next 673 0 R -/Prev 664 0 R +/First 668 0 R +/Last 671 0 R +/Next 672 0 R +/Prev 663 0 R /Dest [137 0 R /XYZ 0 792.0 null] >> endobj -669 0 obj +668 0 obj << /Title <feff0032002e00320030002e0031002e00200050006100720061006d00650074006500720073> -/Parent 668 0 R +/Parent 667 0 R /Count 0 -/Next 670 0 R +/Next 669 0 R /Dest [137 0 R /XYZ 0 718.32 null] >> endobj -670 0 obj +669 0 obj << /Title <feff0032002e00320030002e0032002e00200052006500730070006f006e007300650073> -/Parent 668 0 R +/Parent 667 0 R /Count 0 -/Next 671 0 R -/Prev 669 0 R +/Next 670 0 R +/Prev 668 0 R /Dest [137 0 R /XYZ 0 575.6400000000001 null] >> endobj -671 0 obj +670 0 obj << /Title <feff0032002e00320030002e0033002e00200043006f006e00730075006d00650073> -/Parent 668 0 R +/Parent 667 0 R /Count 0 -/Next 672 0 R -/Prev 670 0 R +/Next 671 0 R +/Prev 669 0 R /Dest [137 0 R /XYZ 0 470.5200000000002 null] >> endobj -672 0 obj +671 0 obj << /Title <feff0032002e00320030002e0034002e002000500072006f00640075006300650073> -/Parent 668 0 R +/Parent 667 0 R /Count 0 -/Prev 671 0 R +/Prev 670 0 R /Dest [137 0 R /XYZ 0 414.2400000000002 null] >> endobj -673 0 obj +672 0 obj << /Title <feff0032002e00320031002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004d006900630072006f00730065007200760069006300650050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 4 -/First 674 0 R -/Last 677 0 R -/Next 678 0 R -/Prev 668 0 R +/First 673 0 R +/Last 676 0 R +/Next 677 0 R +/Prev 667 0 R /Dest [137 0 R /XYZ 0 357.96000000000015 null] >> endobj -674 0 obj +673 0 obj << /Title <feff0032002e00320031002e0031002e00200050006100720061006d00650074006500720073> -/Parent 673 0 R +/Parent 672 0 R /Count 0 -/Next 675 0 R +/Next 674 0 R /Dest [137 0 R /XYZ 0 289.8000000000001 null] >> endobj -675 0 obj +674 0 obj << /Title <feff0032002e00320031002e0032002e00200052006500730070006f006e007300650073> -/Parent 673 0 R +/Parent 672 0 R /Count 0 -/Next 676 0 R -/Prev 674 0 R +/Next 675 0 R +/Prev 673 0 R /Dest [137 0 R /XYZ 0 147.1200000000001 null] >> endobj -676 0 obj +675 0 obj << /Title <feff0032002e00320031002e0033002e00200043006f006e00730075006d00650073> -/Parent 673 0 R +/Parent 672 0 R /Count 0 -/Next 677 0 R -/Prev 675 0 R +/Next 676 0 R +/Prev 674 0 R /Dest [151 0 R /XYZ 0 792.0 null] >> endobj -677 0 obj +676 0 obj << /Title <feff0032002e00320031002e0034002e002000500072006f00640075006300650073> -/Parent 673 0 R +/Parent 672 0 R /Count 0 -/Prev 676 0 R +/Prev 675 0 R /Dest [151 0 R /XYZ 0 702.1200000000001 null] >> endobj -678 0 obj +677 0 obj << /Title <feff0032002e00320032002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004f007000650072006100740069006f006e0061006c0050006f006c00690063006900650073002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 4 -/First 679 0 R -/Last 682 0 R -/Next 683 0 R -/Prev 673 0 R +/First 678 0 R +/Last 681 0 R +/Next 682 0 R +/Prev 672 0 R /Dest [151 0 R /XYZ 0 645.8400000000003 null] >> endobj -679 0 obj +678 0 obj << /Title <feff0032002e00320032002e0031002e00200050006100720061006d00650074006500720073> -/Parent 678 0 R +/Parent 677 0 R /Count 0 -/Next 680 0 R +/Next 679 0 R /Dest [151 0 R /XYZ 0 577.6800000000004 null] >> endobj -680 0 obj +679 0 obj << /Title <feff0032002e00320032002e0032002e00200052006500730070006f006e007300650073> -/Parent 678 0 R +/Parent 677 0 R /Count 0 -/Next 681 0 R -/Prev 679 0 R +/Next 680 0 R +/Prev 678 0 R /Dest [151 0 R /XYZ 0 435.0000000000005 null] >> endobj -681 0 obj +680 0 obj << /Title <feff0032002e00320032002e0033002e00200043006f006e00730075006d00650073> -/Parent 678 0 R +/Parent 677 0 R /Count 0 -/Next 682 0 R -/Prev 680 0 R +/Next 681 0 R +/Prev 679 0 R /Dest [151 0 R /XYZ 0 329.88000000000045 null] >> endobj -682 0 obj +681 0 obj << /Title <feff0032002e00320032002e0034002e002000500072006f00640075006300650073> -/Parent 678 0 R +/Parent 677 0 R /Count 0 -/Prev 681 0 R +/Prev 680 0 R /Dest [151 0 R /XYZ 0 273.6000000000004 null] >> endobj -683 0 obj +682 0 obj << /Title <feff0032002e00320033002e00200047004500540020002f00760032002f006c006f006f0070002f007b006c006f006f0070004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 684 0 R -/Last 686 0 R -/Next 687 0 R -/Prev 678 0 R +/First 683 0 R +/Last 685 0 R +/Next 686 0 R +/Prev 677 0 R /Dest [151 0 R /XYZ 0 217.32000000000042 null] >> endobj -684 0 obj +683 0 obj << /Title <feff0032002e00320033002e0031002e00200050006100720061006d00650074006500720073> -/Parent 683 0 R +/Parent 682 0 R /Count 0 -/Next 685 0 R +/Next 684 0 R /Dest [151 0 R /XYZ 0 177.2400000000004 null] >> endobj -685 0 obj +684 0 obj << /Title <feff0032002e00320033002e0032002e00200052006500730070006f006e007300650073> -/Parent 683 0 R +/Parent 682 0 R /Count 0 -/Next 686 0 R -/Prev 684 0 R +/Next 685 0 R +/Prev 683 0 R /Dest [165 0 R /XYZ 0 792.0 null] >> endobj -686 0 obj +685 0 obj << /Title <feff0032002e00320033002e0033002e002000500072006f00640075006300650073> -/Parent 683 0 R +/Parent 682 0 R /Count 0 -/Prev 685 0 R +/Prev 684 0 R /Dest [165 0 R /XYZ 0 653.2800000000002 null] >> endobj -687 0 obj +686 0 obj << /Title <feff0032002e00320034002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 688 0 R -/Last 689 0 R -/Next 690 0 R -/Prev 683 0 R +/First 687 0 R +/Last 688 0 R +/Next 689 0 R +/Prev 682 0 R /Dest [165 0 R /XYZ 0 597.0000000000003 null] >> endobj -688 0 obj +687 0 obj << /Title <feff0032002e00320034002e0031002e00200052006500730070006f006e007300650073> -/Parent 687 0 R +/Parent 686 0 R /Count 0 -/Next 689 0 R +/Next 688 0 R /Dest [165 0 R /XYZ 0 556.9200000000004 null] >> endobj -689 0 obj +688 0 obj << /Title <feff0032002e00320034002e0032002e002000500072006f00640075006300650073> -/Parent 687 0 R +/Parent 686 0 R /Count 0 -/Prev 688 0 R +/Prev 687 0 R /Dest [165 0 R /XYZ 0 451.8000000000005 null] >> endobj -690 0 obj +689 0 obj << /Title <feff0032002e00320035002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f00790061006d006c002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 691 0 R -/Last 693 0 R -/Next 694 0 R -/Prev 687 0 R +/First 690 0 R +/Last 692 0 R +/Next 693 0 R +/Prev 686 0 R /Dest [165 0 R /XYZ 0 395.5200000000005 null] >> endobj -691 0 obj +690 0 obj << /Title <feff0032002e00320035002e0031002e00200050006100720061006d00650074006500720073> -/Parent 690 0 R +/Parent 689 0 R /Count 0 -/Next 692 0 R +/Next 691 0 R /Dest [165 0 R /XYZ 0 327.36000000000047 null] >> endobj -692 0 obj +691 0 obj << /Title <feff0032002e00320035002e0032002e00200052006500730070006f006e007300650073> -/Parent 690 0 R +/Parent 689 0 R /Count 0 -/Next 693 0 R -/Prev 691 0 R +/Next 692 0 R +/Prev 690 0 R /Dest [165 0 R /XYZ 0 222.2400000000004 null] >> endobj -693 0 obj +692 0 obj << /Title <feff0032002e00320035002e0033002e002000500072006f00640075006300650073> -/Parent 690 0 R +/Parent 689 0 R /Count 0 -/Prev 692 0 R +/Prev 691 0 R /Dest [165 0 R /XYZ 0 117.12000000000037 null] >> endobj -694 0 obj +693 0 obj << /Title <feff0032002e00320036002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 695 0 R -/Last 697 0 R -/Next 698 0 R -/Prev 690 0 R +/First 694 0 R +/Last 696 0 R +/Next 697 0 R +/Prev 689 0 R /Dest [178 0 R /XYZ 0 792.0 null] >> endobj -695 0 obj +694 0 obj << /Title <feff0032002e00320036002e0031002e00200050006100720061006d00650074006500720073> -/Parent 694 0 R +/Parent 693 0 R /Count 0 -/Next 696 0 R +/Next 695 0 R /Dest [178 0 R /XYZ 0 718.32 null] >> endobj -696 0 obj +695 0 obj << /Title <feff0032002e00320036002e0032002e00200052006500730070006f006e007300650073> -/Parent 694 0 R +/Parent 693 0 R /Count 0 -/Next 697 0 R -/Prev 695 0 R +/Next 696 0 R +/Prev 694 0 R /Dest [178 0 R /XYZ 0 613.2000000000003 null] >> endobj -697 0 obj +696 0 obj << /Title <feff0032002e00320036002e0033002e002000500072006f00640075006300650073> -/Parent 694 0 R +/Parent 693 0 R /Count 0 -/Prev 696 0 R +/Prev 695 0 R /Dest [178 0 R /XYZ 0 508.0800000000004 null] >> endobj -698 0 obj +697 0 obj << /Title <feff0032002e00320037002e00200050005500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 4 -/First 699 0 R -/Last 702 0 R -/Next 703 0 R -/Prev 694 0 R +/First 698 0 R +/Last 701 0 R +/Next 702 0 R +/Prev 693 0 R /Dest [178 0 R /XYZ 0 451.80000000000035 null] >> endobj -699 0 obj +698 0 obj << /Title <feff0032002e00320037002e0031002e00200050006100720061006d00650074006500720073> -/Parent 698 0 R +/Parent 697 0 R /Count 0 -/Next 700 0 R +/Next 699 0 R /Dest [178 0 R /XYZ 0 411.7200000000003 null] >> endobj -700 0 obj +699 0 obj << /Title <feff0032002e00320037002e0032002e00200052006500730070006f006e007300650073> -/Parent 698 0 R +/Parent 697 0 R /Count 0 -/Next 701 0 R -/Prev 699 0 R +/Next 700 0 R +/Prev 698 0 R /Dest [178 0 R /XYZ 0 269.04000000000025 null] >> endobj -701 0 obj +700 0 obj << /Title <feff0032002e00320037002e0033002e00200043006f006e00730075006d00650073> -/Parent 698 0 R +/Parent 697 0 R /Count 0 -/Next 702 0 R -/Prev 700 0 R +/Next 701 0 R +/Prev 699 0 R /Dest [178 0 R /XYZ 0 163.92000000000024 null] >> endobj -702 0 obj +701 0 obj << /Title <feff0032002e00320037002e0034002e002000500072006f00640075006300650073> -/Parent 698 0 R +/Parent 697 0 R /Count 0 -/Prev 701 0 R +/Prev 700 0 R /Dest [178 0 R /XYZ 0 107.64000000000021 null] >> endobj -703 0 obj +702 0 obj << /Title <feff0032002e00320038002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 704 0 R -/Last 705 0 R -/Next 706 0 R -/Prev 698 0 R -/Dest [193 0 R /XYZ 0 792.0 null] +/First 703 0 R +/Last 704 0 R +/Next 705 0 R +/Prev 697 0 R +/Dest [192 0 R /XYZ 0 792.0 null] >> endobj -704 0 obj +703 0 obj << /Title <feff0032002e00320038002e0031002e00200052006500730070006f006e007300650073> -/Parent 703 0 R +/Parent 702 0 R /Count 0 -/Next 705 0 R -/Dest [193 0 R /XYZ 0 718.32 null] +/Next 704 0 R +/Dest [192 0 R /XYZ 0 718.32 null] >> endobj -705 0 obj +704 0 obj << /Title <feff0032002e00320038002e0032002e002000500072006f00640075006300650073> -/Parent 703 0 R +/Parent 702 0 R /Count 0 -/Prev 704 0 R -/Dest [193 0 R /XYZ 0 613.2000000000003 null] +/Prev 703 0 R +/Dest [192 0 R /XYZ 0 613.2000000000003 null] >> endobj -706 0 obj +705 0 obj << /Title <feff0032002e00320039002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f006e0061006d00650073> -/Parent 595 0 R +/Parent 594 0 R /Count 2 -/First 707 0 R -/Last 708 0 R -/Next 709 0 R -/Prev 703 0 R -/Dest [193 0 R /XYZ 0 556.9200000000004 null] +/First 706 0 R +/Last 707 0 R +/Next 708 0 R +/Prev 702 0 R +/Dest [192 0 R /XYZ 0 556.9200000000004 null] >> endobj -707 0 obj +706 0 obj << /Title <feff0032002e00320039002e0031002e00200052006500730070006f006e007300650073> -/Parent 706 0 R +/Parent 705 0 R /Count 0 -/Next 708 0 R -/Dest [193 0 R /XYZ 0 516.8400000000005 null] +/Next 707 0 R +/Dest [192 0 R /XYZ 0 516.8400000000005 null] >> endobj -708 0 obj +707 0 obj << /Title <feff0032002e00320039002e0032002e002000500072006f00640075006300650073> -/Parent 706 0 R +/Parent 705 0 R /Count 0 -/Prev 707 0 R -/Dest [193 0 R /XYZ 0 411.7200000000005 null] +/Prev 706 0 R +/Dest [192 0 R /XYZ 0 411.7200000000005 null] >> endobj -709 0 obj +708 0 obj << /Title <feff0032002e00330030002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f007b00740065006d0070006c006100740065004e0061006d0065007d> -/Parent 595 0 R +/Parent 594 0 R /Count 3 -/First 710 0 R -/Last 712 0 R -/Prev 706 0 R -/Dest [193 0 R /XYZ 0 355.44000000000045 null] +/First 709 0 R +/Last 711 0 R +/Prev 705 0 R +/Dest [192 0 R /XYZ 0 355.44000000000045 null] >> endobj -710 0 obj +709 0 obj << /Title <feff0032002e00330030002e0031002e00200050006100720061006d00650074006500720073> -/Parent 709 0 R +/Parent 708 0 R /Count 0 -/Next 711 0 R -/Dest [193 0 R /XYZ 0 315.3600000000004 null] +/Next 710 0 R +/Dest [192 0 R /XYZ 0 315.3600000000004 null] >> endobj -711 0 obj +710 0 obj << /Title <feff0032002e00330030002e0032002e00200052006500730070006f006e007300650073> -/Parent 709 0 R +/Parent 708 0 R /Count 0 -/Next 712 0 R -/Prev 710 0 R -/Dest [193 0 R /XYZ 0 210.2400000000004 null] +/Next 711 0 R +/Prev 709 0 R +/Dest [192 0 R /XYZ 0 210.2400000000004 null] >> endobj -712 0 obj +711 0 obj << /Title <feff0032002e00330030002e0033002e002000500072006f00640075006300650073> -/Parent 709 0 R +/Parent 708 0 R /Count 0 -/Prev 711 0 R -/Dest [193 0 R /XYZ 0 105.12000000000037 null] +/Prev 710 0 R +/Dest [192 0 R /XYZ 0 105.12000000000037 null] >> endobj -713 0 obj +712 0 obj << /Title <feff004300680061007000740065007200200033002e00200044006500660069006e006900740069006f006e0073> -/Parent 589 0 R +/Parent 588 0 R /Count 19 -/First 714 0 R -/Last 732 0 R -/Prev 595 0 R -/Dest [208 0 R /XYZ 0 792.0 null] +/First 713 0 R +/Last 731 0 R +/Prev 594 0 R +/Dest [207 0 R /XYZ 0 792.0 null] >> endobj -714 0 obj +713 0 obj << /Title <feff0033002e0031002e00200043006c00640073004800650061006c007400680043006800650063006b> -/Parent 713 0 R +/Parent 712 0 R +/Count 0 +/Next 714 0 R +/Dest [207 0 R /XYZ 0 712.0799999999999 null] +>> +endobj +714 0 obj +<< /Title <feff0033002e0032002e002000440069006300740069006f006e006100720079> +/Parent 712 0 R /Count 0 /Next 715 0 R -/Dest [208 0 R /XYZ 0 712.0799999999999 null] +/Prev 713 0 R +/Dest [207 0 R /XYZ 0 524.04 null] >> endobj 715 0 obj -<< /Title <feff0033002e0032002e002000440069006300740069006f006e006100720079> -/Parent 713 0 R +<< /Title <feff0033002e0033002e002000440069006300740069006f006e0061007200790045006c0065006d0065006e0074> +/Parent 712 0 R /Count 0 /Next 716 0 R /Prev 714 0 R -/Dest [208 0 R /XYZ 0 524.04 null] +/Dest [207 0 R /XYZ 0 148.19999999999993 null] >> endobj 716 0 obj -<< /Title <feff0033002e0033002e002000440069006300740069006f006e0061007200790045006c0065006d0065006e0074> -/Parent 713 0 R +<< /Title <feff0033002e0034002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e0074> +/Parent 712 0 R /Count 0 /Next 717 0 R /Prev 715 0 R -/Dest [208 0 R /XYZ 0 148.19999999999993 null] +/Dest [214 0 R /XYZ 0 345.11999999999995 null] >> endobj 717 0 obj -<< /Title <feff0033002e0034002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e0074> -/Parent 713 0 R +<< /Title <feff0033002e0035002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e007400530074006100740065> +/Parent 712 0 R /Count 0 /Next 718 0 R /Prev 716 0 R -/Dest [215 0 R /XYZ 0 345.11999999999995 null] +/Dest [214 0 R /XYZ 0 194.6399999999999 null] >> endobj 718 0 obj -<< /Title <feff0033002e0035002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e007400530074006100740065> -/Parent 713 0 R +<< /Title <feff0033002e0036002e0020004a0073006f006e00410072007200610079> +/Parent 712 0 R /Count 0 /Next 719 0 R /Prev 717 0 R -/Dest [215 0 R /XYZ 0 194.6399999999999 null] +/Dest [220 0 R /XYZ 0 683.1600000000001 null] >> endobj 719 0 obj -<< /Title <feff0033002e0036002e0020004a0073006f006e00410072007200610079> -/Parent 713 0 R +<< /Title <feff0033002e0037002e0020004a0073006f006e004e0075006c006c> +/Parent 712 0 R /Count 0 /Next 720 0 R /Prev 718 0 R -/Dest [221 0 R /XYZ 0 683.1600000000001 null] +/Dest [228 0 R /XYZ 0 532.9200000000003 null] >> endobj 720 0 obj -<< /Title <feff0033002e0037002e0020004a0073006f006e004e0075006c006c> -/Parent 713 0 R +<< /Title <feff0033002e0038002e0020004a0073006f006e004f0062006a006500630074> +/Parent 712 0 R /Count 0 /Next 721 0 R /Prev 719 0 R -/Dest [229 0 R /XYZ 0 532.9200000000003 null] +/Dest [234 0 R /XYZ 0 382.68000000000023 null] >> endobj 721 0 obj -<< /Title <feff0033002e0038002e0020004a0073006f006e004f0062006a006500630074> -/Parent 713 0 R +<< /Title <feff0033002e0039002e0020004a0073006f006e005000720069006d00690074006900760065> +/Parent 712 0 R /Count 0 /Next 722 0 R /Prev 720 0 R -/Dest [235 0 R /XYZ 0 382.68000000000023 null] +/Dest [239 0 R /XYZ 0 232.44000000000023 null] >> endobj 722 0 obj -<< /Title <feff0033002e0039002e0020004a0073006f006e005000720069006d00690074006900760065> -/Parent 713 0 R +<< /Title <feff0033002e00310030002e0020004c006f006f0070> +/Parent 712 0 R /Count 0 /Next 723 0 R /Prev 721 0 R -/Dest [240 0 R /XYZ 0 232.44000000000023 null] +/Dest [255 0 R /XYZ 0 645.6000000000001 null] >> endobj 723 0 obj -<< /Title <feff0033002e00310030002e0020004c006f006f0070> -/Parent 713 0 R +<< /Title <feff0033002e00310031002e0020004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> +/Parent 712 0 R /Count 0 /Next 724 0 R /Prev 722 0 R -/Dest [256 0 R /XYZ 0 645.6000000000001 null] +/Dest [265 0 R /XYZ 0 645.6000000000001 null] >> endobj 724 0 obj -<< /Title <feff0033002e00310031002e0020004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> -/Parent 713 0 R +<< /Title <feff0033002e00310032002e0020004c006f006f0070004c006f0067> +/Parent 712 0 R /Count 0 /Next 725 0 R /Prev 723 0 R -/Dest [266 0 R /XYZ 0 645.6000000000001 null] +/Dest [265 0 R /XYZ 0 157.08000000000015 null] >> endobj 725 0 obj -<< /Title <feff0033002e00310032002e0020004c006f006f0070004c006f0067> -/Parent 713 0 R +<< /Title <feff0033002e00310033002e0020004c006f006f007000540065006d0070006c006100740065> +/Parent 712 0 R /Count 0 /Next 726 0 R /Prev 724 0 R -/Dest [266 0 R /XYZ 0 157.08000000000015 null] +/Dest [271 0 R /XYZ 0 532.9200000000001 null] >> endobj 726 0 obj -<< /Title <feff0033002e00310033002e0020004c006f006f007000540065006d0070006c006100740065> -/Parent 713 0 R +<< /Title <feff0033002e00310034002e0020004c006f006f007000540065006d0070006c006100740065004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> +/Parent 712 0 R /Count 0 /Next 727 0 R /Prev 725 0 R -/Dest [272 0 R /XYZ 0 532.9200000000001 null] +/Dest [277 0 R /XYZ 0 645.6000000000001 null] >> endobj 727 0 obj -<< /Title <feff0033002e00310034002e0020004c006f006f007000540065006d0070006c006100740065004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c> -/Parent 713 0 R +<< /Title <feff0033002e00310035002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079> +/Parent 712 0 R /Count 0 /Next 728 0 R /Prev 726 0 R -/Dest [278 0 R /XYZ 0 645.6000000000001 null] +/Dest [277 0 R /XYZ 0 457.56000000000023 null] >> endobj 728 0 obj -<< /Title <feff0033002e00310035002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079> -/Parent 713 0 R +<< /Title <feff0033002e00310036002e0020004e0075006d006200650072> +/Parent 712 0 R /Count 0 /Next 729 0 R /Prev 727 0 R -/Dest [278 0 R /XYZ 0 457.56000000000023 null] +/Dest [285 0 R /XYZ 0 420.2400000000002 null] >> endobj 729 0 obj -<< /Title <feff0033002e00310036002e0020004e0075006d006200650072> -/Parent 713 0 R +<< /Title <feff0033002e00310037002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079> +/Parent 712 0 R /Count 0 /Next 730 0 R /Prev 728 0 R -/Dest [286 0 R /XYZ 0 420.2400000000002 null] +/Dest [285 0 R /XYZ 0 352.3800000000001 null] >> endobj 730 0 obj -<< /Title <feff0033002e00310037002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079> -/Parent 713 0 R +<< /Title <feff0033002e00310038002e00200050006f006c006900630079004d006f00640065006c> +/Parent 712 0 R /Count 0 /Next 731 0 R /Prev 729 0 R -/Dest [286 0 R /XYZ 0 352.3800000000001 null] +/Dest [296 0 R /XYZ 0 532.9200000000001 null] >> endobj 731 0 obj -<< /Title <feff0033002e00310038002e00200050006f006c006900630079004d006f00640065006c> -/Parent 713 0 R +<< /Title <feff0033002e00310039002e00200053006500720076006900630065> +/Parent 712 0 R /Count 0 -/Next 732 0 R /Prev 730 0 R -/Dest [297 0 R /XYZ 0 532.9200000000001 null] +/Dest [296 0 R /XYZ 0 119.52000000000004 null] >> endobj 732 0 obj -<< /Title <feff0033002e00310039002e00200053006500720076006900630065> -/Parent 713 0 R -/Count 0 -/Prev 731 0 R -/Dest [297 0 R /XYZ 0 119.52000000000004 null] ->> -endobj -733 0 obj << /Nums [0 << /P (i) >> 1 << /P (ii) >> 2 << /P (iii) @@ -48647,7 +48642,7 @@ endobj >>] >> endobj -734 0 obj +733 0 obj << /Length1 12112 /Length 7776 /Filter [/FlateDecode] @@ -48680,10 +48675,10 @@ G)DzÎÿl ”a•dç4äft†#Ëe=<¥òª¦'½ýcÞɕߪù‘좼pNƒ/(i€À$šVô·(ý.½°Œÿ¾>Ö½t`jxp\5=àÛàÛ¥¬›Ž³€×X©wÚ«šŸ rèWõΪVÙö‡°-…/M³sœ6C,”é€C¬ÁÐT¨Ä«6 endstream endobj -735 0 obj +734 0 obj << /Type /FontDescriptor /FontName /AAAAAA+NotoSerif -/FontFile2 734 0 R +/FontFile2 733 0 R /FontBBox [-212 -250 1246 1047] /Flags 6 /StemV 0 @@ -48694,7 +48689,7 @@ endobj /XHeight 1098 >> endobj -736 0 obj +735 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -48704,10 +48699,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ +ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí ¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ–-㌋·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eãÓ«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9Jñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã
{HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî;¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…>¼M†ÁBi2.Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ? endstream endobj -737 0 obj +736 0 obj [259 1000 1000 1000 1000 1000 1000 1000 346 346 1000 1000 250 310 250 288 559 559 559 559 559 559 559 559 559 559 286 1000 559 1000 559 1000 1000 705 653 613 727 623 589 713 792 367 356 1000 623 937 763 742 604 1000 655 543 612 716 674 1046 1000 625 1000 1000 1000 1000 1000 458 1000 562 613 492 613 535 369 538 634 319 299 584 310 944 645 577 613 1000 471 451 352 634 579 861 578 564 1000 428 1000 428 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 361 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000] endobj -738 0 obj +737 0 obj << /Length1 11308 /Length 7514 /Filter [/FlateDecode] @@ -48738,10 +48733,10 @@ fé27®!Ľ8˜o¥‘žU2e‰±0yådÈ]a” ¤“_ý,SÎãr’RE)ùÉUBüžRmÓ©Eô7þþÓIVêlj.Ñ¥*' \ïLBCŒXÇdô0Âj§äõÁsñ«ÕïØ€²Ö‘ÝŒ#¯Xc‹À19=ìŒÆQÌ8ë*ªš;ªìŠ[¯·o…Tpž:A«+¥Ï endstream endobj -739 0 obj +738 0 obj << /Type /FontDescriptor /FontName /AAAAAB+NotoSerif-Bold -/FontFile2 738 0 R +/FontFile2 737 0 R /FontBBox [-212 -250 1306 1058] /Flags 6 /StemV 0 @@ -48752,7 +48747,7 @@ endobj /XHeight 1098 >> endobj -740 0 obj +739 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -48762,10 +48757,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ +ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí ¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ–-㌋·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eãÓ«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9Jñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã
{HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî;¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…>¼M†ÁBi2.Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ? endstream endobj -741 0 obj +740 0 obj [259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 293 288 559 559 559 559 559 559 559 559 559 559 1000 1000 1000 1000 1000 1000 1000 752 671 667 767 652 621 769 818 400 368 1000 653 952 788 787 638 1000 707 585 652 747 698 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 599 648 526 648 570 407 560 666 352 345 636 352 985 666 612 645 647 522 487 404 666 605 855 645 579 1000 441 1000 441 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000] endobj -742 0 obj +741 0 obj << /Length1 5116 /Length 3170 /Filter [/FlateDecode] @@ -48785,10 +48780,10 @@ aÙR÷Ÿâör×ÿrŠÌš±ãø±m'™²ÏOr׸ÜóG‰š¸ÝMÖÝ #8çMî¾nzº95“ƒ6GðÑ`#%ýà xH‚¢±Å+ÅhžQrÍD ÿ:´2õ]Û^Ô5 w,¥Âº*›Ó‹Œ58«mÖg·±nkÞÄ7cÙÞB4èÆa¯ÅÊD[NaéU‹<V¥Éó`ØÉ@V΋š{KÙÀ—r¿ËS«¯ ðêó3³§e'ó(×ÚÏ«-{S}`-õy÷¢¦/²±ò‹ð79à]èp$xrë’¤ÏÊÃ'ý›"ZÞé³/izïþ›]’Wâ~ ïÝ–þ&ÌÁT endstream endobj -743 0 obj +742 0 obj << /Type /FontDescriptor /FontName /AAAAAC+NotoSerif-Italic -/FontFile2 742 0 R +/FontFile2 741 0 R /FontBBox [-254 -250 1238 1047] /Flags 70 /StemV 0 @@ -48799,7 +48794,7 @@ endobj /XHeight 1098 >> endobj -744 0 obj +743 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -48809,10 +48804,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ +ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí ¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ–-㌋·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eãÓ«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9Jñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã
{HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî;¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…>¼M†ÁBi2.Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ? endstream endobj -745 0 obj +744 0 obj [1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 653 1000 1000 1000 1000 1000 792 1000 1000 1000 1000 1000 1000 1000 620 1000 1000 543 612 1000 674 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 579 1000 486 579 493 1000 1000 599 304 1000 1000 304 895 599 574 577 560 467 463 368 599 1000 1000 1000 527 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000] endobj -746 0 obj +745 0 obj << /Length1 3280 /Length 2112 /Filter [/FlateDecode] @@ -48827,10 +48822,10 @@ xœµV{L›×?ç³±yûyš’Ï|„<üÛ„b^ì ˆ‡¶€$W´¦ö"k8À
VšÛi<êí!‹§–N..ðͶ&W+uXœ¶—¨:‹’j³†Z;Ù×cžOÎ-/²UFN¤ÓÉ6»][§)å%ÛÒâr*Ÿf©Ûf“RÓTó6°Óß<Qsäz‰B–Ó^"KD/“çùŸÞ)ƒ~™’¹T¾^õ‡i9šít-Ñ£\î‚céúìw='4‡î‚9÷F|ðÂBìßëVbCAÿWAþö}½‚[Ï‹¸1?¾ˆøbä¢Oe›Dm$ BD<yBT™'ÂÑ`Á"BY@Ü‹þS„ÃU´nH²g#ü‡"–Ùª¬"Zø›b±Ù*r–@(Ü+DLVQa9YÅ‹Þ Áz#VQia¦&ÁôLøOÆßDŒ¤~`ü{Ä(˜Ä<sXôŠH‘áåYJ&Ƭ¢Êr±WÉ;¿:1a`Ô–‹
’È»#Ê·èuü»U,°ðÏ2'W †»^T6úE†3ñL”gD«ÑdŠ3ÊqÌaa.:Qk"Ä"CJ§ØÂÛE5„çû_t–óS“9¦WÂ<“k>Ã÷e|Q!ÃgÉÀÀE/iR~L zãŒ!›RÉSûz•Édä×3T2 hŽÊ±™$5Eà×eçŒM"FÂJh@È|f #D™A΄-VQËŽAOqëXŒÐÿG¶Ñ٧΄™–Y(‰Ì÷YÙüSBF-òÁð!ãû´c°¼^ôvuaàŠ–Ú[š™òÑ0›Caa’¢ºŒ´ ÐE•÷†Â—¨¯»c]—GZD>&VÇk·}•[D’R]h²²ß‘zÖóé?+wú_½î“ä endstream endobj -747 0 obj +746 0 obj << /Type /FontDescriptor /FontName /AAAAAD+mplus1mn-regular -/FontFile2 746 0 R +/FontFile2 745 0 R /FontBBox [0 -230 1000 860] /Flags 4 /StemV 0 @@ -48841,7 +48836,7 @@ endobj /XHeight 0 >> endobj -748 0 obj +747 0 obj << /Length 1286 /Filter [/FlateDecode] >> @@ -48851,11 +48846,11 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ +ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí ¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ–-㌋·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eãÓ«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9Jñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã
{HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî;¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…>¼M†ÁBi2.Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ? endstream endobj -749 0 obj +748 0 obj [1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 500 1000 500 1000 1000 1000 500 500 1000 500 500 500 500 500 1000 1000 500 500 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000] endobj xref -0 750 +0 749 0000000000 65535 f 0000000015 00000 n 0000000264 00000 n @@ -48878,739 +48873,738 @@ xref 0000127807 00000 n 0000127850 00000 n 0000127899 00000 n -0000128013 00000 n -0000128186 00000 n -0000128241 00000 n -0000128416 00000 n -0000128460 00000 n -0000140641 00000 n -0000140902 00000 n -0000140945 00000 n -0000141000 00000 n -0000141043 00000 n -0000141215 00000 n -0000141270 00000 n -0000141445 00000 n -0000141501 00000 n -0000141556 00000 n -0000141611 00000 n -0000141667 00000 n -0000141722 00000 n -0000141880 00000 n -0000141935 00000 n -0000141991 00000 n -0000158351 00000 n -0000158625 00000 n -0000158668 00000 n -0000158822 00000 n -0000158877 00000 n -0000159033 00000 n -0000159088 00000 n -0000159144 00000 n -0000159199 00000 n -0000159254 00000 n -0000159309 00000 n -0000159619 00000 n -0000159928 00000 n -0000159983 00000 n -0000160039 00000 n -0000178196 00000 n -0000178477 00000 n -0000178520 00000 n -0000178676 00000 n -0000178731 00000 n -0000178786 00000 n -0000178841 00000 n -0000178995 00000 n -0000179050 00000 n -0000179206 00000 n -0000179262 00000 n -0000179318 00000 n -0000179373 00000 n -0000179428 00000 n -0000194751 00000 n -0000195001 00000 n -0000195044 00000 n -0000195099 00000 n -0000195154 00000 n -0000195209 00000 n -0000195265 00000 n -0000195320 00000 n -0000195376 00000 n -0000195432 00000 n -0000195488 00000 n -0000195763 00000 n -0000213630 00000 n -0000213897 00000 n -0000213941 00000 n -0000213996 00000 n -0000214309 00000 n -0000214364 00000 n -0000214526 00000 n -0000214582 00000 n -0000214637 00000 n -0000214692 00000 n -0000214747 00000 n -0000214803 00000 n -0000214859 00000 n -0000231023 00000 n -0000231298 00000 n -0000231341 00000 n -0000231502 00000 n -0000231558 00000 n -0000231614 00000 n -0000231670 00000 n +0000128005 00000 n +0000128178 00000 n +0000128233 00000 n +0000128408 00000 n +0000128452 00000 n +0000140633 00000 n +0000140894 00000 n +0000140937 00000 n +0000140992 00000 n +0000141035 00000 n +0000141207 00000 n +0000141262 00000 n +0000141437 00000 n +0000141493 00000 n +0000141548 00000 n +0000141603 00000 n +0000141659 00000 n +0000141714 00000 n +0000141872 00000 n +0000141927 00000 n +0000141983 00000 n +0000158343 00000 n +0000158617 00000 n +0000158660 00000 n +0000158814 00000 n +0000158869 00000 n +0000159025 00000 n +0000159080 00000 n +0000159136 00000 n +0000159191 00000 n +0000159246 00000 n +0000159301 00000 n +0000159611 00000 n +0000159920 00000 n +0000159975 00000 n +0000160031 00000 n +0000178188 00000 n +0000178469 00000 n +0000178512 00000 n +0000178668 00000 n +0000178723 00000 n +0000178778 00000 n +0000178833 00000 n +0000178987 00000 n +0000179042 00000 n +0000179198 00000 n +0000179254 00000 n +0000179310 00000 n +0000179365 00000 n +0000179420 00000 n +0000194743 00000 n +0000194993 00000 n +0000195036 00000 n +0000195091 00000 n +0000195146 00000 n +0000195201 00000 n +0000195257 00000 n +0000195312 00000 n +0000195368 00000 n +0000195424 00000 n +0000195480 00000 n +0000196149 00000 n +0000214016 00000 n +0000214283 00000 n +0000214327 00000 n +0000214382 00000 n +0000214695 00000 n +0000214750 00000 n +0000214912 00000 n +0000214968 00000 n +0000215023 00000 n +0000215078 00000 n +0000215133 00000 n +0000215189 00000 n +0000215245 00000 n +0000231409 00000 n +0000231684 00000 n 0000231727 00000 n -0000231889 00000 n -0000231945 00000 n -0000232002 00000 n -0000232059 00000 n -0000232116 00000 n -0000251240 00000 n -0000251526 00000 n -0000251678 00000 n -0000251735 00000 n -0000251792 00000 n -0000251849 00000 n -0000251907 00000 n -0000252070 00000 n -0000252127 00000 n -0000252185 00000 n -0000252522 00000 n -0000252580 00000 n -0000252638 00000 n -0000252801 00000 n -0000269083 00000 n -0000269353 00000 n -0000269398 00000 n -0000269455 00000 n -0000269512 00000 n -0000269569 00000 n -0000269626 00000 n +0000231888 00000 n +0000231944 00000 n +0000232000 00000 n +0000232056 00000 n +0000232113 00000 n +0000232275 00000 n +0000232331 00000 n +0000232388 00000 n +0000232445 00000 n +0000232502 00000 n +0000251626 00000 n +0000251912 00000 n +0000252064 00000 n +0000252121 00000 n +0000252178 00000 n +0000252235 00000 n +0000252293 00000 n +0000252715 00000 n +0000252878 00000 n +0000252935 00000 n +0000252993 00000 n +0000253051 00000 n +0000253109 00000 n +0000253272 00000 n +0000269554 00000 n +0000269824 00000 n +0000269869 00000 n 0000269926 00000 n 0000269983 00000 n -0000270041 00000 n -0000270099 00000 n -0000270263 00000 n -0000270320 00000 n -0000290017 00000 n -0000290311 00000 n -0000290356 00000 n -0000290402 00000 n -0000290557 00000 n -0000290614 00000 n -0000290777 00000 n -0000290834 00000 n -0000290891 00000 n -0000290949 00000 n -0000291006 00000 n -0000291171 00000 n -0000291228 00000 n -0000291405 00000 n -0000306915 00000 n -0000307193 00000 n -0000307238 00000 n -0000307295 00000 n -0000307352 00000 n -0000307409 00000 n -0000307567 00000 n -0000307624 00000 n -0000307787 00000 n -0000307845 00000 n -0000308308 00000 n -0000308365 00000 n -0000308423 00000 n -0000308480 00000 n -0000324954 00000 n -0000325232 00000 n -0000325277 00000 n -0000325439 00000 n -0000325496 00000 n -0000325553 00000 n -0000325610 00000 n -0000325771 00000 n -0000325828 00000 n -0000325885 00000 n -0000325943 00000 n -0000326000 00000 n -0000326058 00000 n -0000344169 00000 n -0000344447 00000 n -0000344492 00000 n -0000344538 00000 n -0000344595 00000 n -0000344754 00000 n -0000344811 00000 n -0000344869 00000 n -0000345431 00000 n -0000345488 00000 n -0000345546 00000 n -0000345948 00000 n -0000346109 00000 n -0000346167 00000 n -0000346225 00000 n -0000362796 00000 n +0000270040 00000 n +0000270097 00000 n +0000270397 00000 n +0000270454 00000 n +0000270512 00000 n +0000270570 00000 n +0000270734 00000 n +0000270791 00000 n +0000290488 00000 n +0000290782 00000 n +0000290827 00000 n +0000290873 00000 n +0000291028 00000 n +0000291085 00000 n +0000291248 00000 n +0000291305 00000 n +0000291362 00000 n +0000291420 00000 n +0000291477 00000 n +0000291642 00000 n +0000291699 00000 n +0000291876 00000 n +0000307386 00000 n +0000307664 00000 n +0000307709 00000 n +0000307766 00000 n +0000307823 00000 n +0000307880 00000 n +0000308038 00000 n +0000308095 00000 n +0000308258 00000 n +0000308316 00000 n +0000308779 00000 n +0000308836 00000 n +0000308894 00000 n +0000308951 00000 n +0000325425 00000 n +0000325703 00000 n +0000325748 00000 n +0000325910 00000 n +0000325967 00000 n +0000326024 00000 n +0000326081 00000 n +0000326242 00000 n +0000326299 00000 n +0000326356 00000 n +0000326414 00000 n +0000326471 00000 n +0000326529 00000 n +0000344640 00000 n +0000344918 00000 n +0000344963 00000 n +0000345009 00000 n +0000345066 00000 n +0000345225 00000 n +0000345282 00000 n +0000345340 00000 n +0000345397 00000 n +0000345455 00000 n +0000345857 00000 n +0000346018 00000 n +0000346076 00000 n +0000346134 00000 n +0000362705 00000 n +0000362983 00000 n +0000363028 00000 n 0000363074 00000 n -0000363119 00000 n -0000363165 00000 n -0000363335 00000 n -0000363392 00000 n -0000363744 00000 n -0000363801 00000 n -0000363858 00000 n -0000363915 00000 n -0000363973 00000 n -0000364030 00000 n -0000364087 00000 n -0000364258 00000 n -0000364316 00000 n -0000380453 00000 n -0000380710 00000 n -0000380755 00000 n -0000380812 00000 n -0000380858 00000 n -0000381035 00000 n -0000381093 00000 n -0000401446 00000 n -0000401711 00000 n -0000401875 00000 n -0000401933 00000 n -0000402116 00000 n -0000402173 00000 n -0000424159 00000 n -0000424448 00000 n -0000424505 00000 n -0000424673 00000 n -0000424840 00000 n -0000425010 00000 n -0000425182 00000 n -0000425342 00000 n -0000446909 00000 n -0000447182 00000 n -0000447239 00000 n -0000447408 00000 n -0000447577 00000 n -0000447746 00000 n -0000468964 00000 n -0000469229 00000 n -0000469380 00000 n -0000469519 00000 n -0000469577 00000 n -0000491288 00000 n -0000491577 00000 n -0000491745 00000 n -0000491892 00000 n -0000492041 00000 n -0000492192 00000 n -0000492331 00000 n -0000492389 00000 n -0000492939 00000 n -0000515684 00000 n -0000515973 00000 n -0000516141 00000 n -0000516288 00000 n -0000516437 00000 n -0000516588 00000 n -0000516727 00000 n -0000540119 00000 n -0000540424 00000 n -0000540481 00000 n -0000540651 00000 n -0000540822 00000 n -0000540990 00000 n -0000541163 00000 n -0000541342 00000 n -0000541504 00000 n -0000541682 00000 n -0000562377 00000 n -0000562642 00000 n -0000562699 00000 n -0000562868 00000 n -0000563057 00000 n -0000563115 00000 n -0000584820 00000 n -0000585093 00000 n -0000585256 00000 n -0000585313 00000 n -0000585500 00000 n -0000585662 00000 n -0000606470 00000 n -0000606751 00000 n -0000606808 00000 n -0000606983 00000 n -0000607155 00000 n -0000607213 00000 n -0000607383 00000 n -0000607552 00000 n -0000628210 00000 n -0000628515 00000 n -0000628690 00000 n -0000628854 00000 n -0000629018 00000 n -0000629075 00000 n -0000629132 00000 n -0000629302 00000 n -0000629472 00000 n -0000629637 00000 n -0000629812 00000 n -0000649226 00000 n -0000649491 00000 n -0000649655 00000 n -0000649712 00000 n -0000649889 00000 n -0000649947 00000 n -0000657265 00000 n -0000657530 00000 n -0000657679 00000 n -0000657828 00000 n -0000657972 00000 n -0000658117 00000 n -0000658282 00000 n -0000658438 00000 n -0000658596 00000 n -0000658743 00000 n -0000658905 00000 n -0000659047 00000 n -0000659213 00000 n -0000659358 00000 n -0000659515 00000 n -0000659661 00000 n -0000659817 00000 n -0000659962 00000 n -0000660118 00000 n -0000660263 00000 n -0000660422 00000 n -0000660570 00000 n -0000660728 00000 n -0000660875 00000 n -0000661031 00000 n -0000661177 00000 n -0000661337 00000 n -0000661486 00000 n -0000661644 00000 n -0000661791 00000 n -0000661947 00000 n -0000662093 00000 n -0000662262 00000 n -0000662410 00000 n -0000662571 00000 n -0000662721 00000 n -0000662877 00000 n -0000663023 00000 n -0000663181 00000 n -0000663328 00000 n -0000663519 00000 n -0000663689 00000 n -0000663849 00000 n -0000663998 00000 n -0000664158 00000 n -0000664307 00000 n -0000664498 00000 n -0000664668 00000 n -0000664839 00000 n -0000664989 00000 n -0000665148 00000 n -0000665296 00000 n -0000665456 00000 n -0000665605 00000 n -0000665776 00000 n -0000665937 00000 n -0000666107 00000 n -0000666256 00000 n -0000666415 00000 n -0000666563 00000 n -0000666720 00000 n -0000666867 00000 n -0000667027 00000 n -0000667176 00000 n -0000667344 00000 n -0000667491 00000 n -0000667663 00000 n -0000667814 00000 n -0000667975 00000 n -0000668125 00000 n -0000668284 00000 n -0000668432 00000 n -0000668624 00000 n -0000668805 00000 n -0000668975 00000 n -0000669124 00000 n -0000669271 00000 n -0000669407 00000 n -0000669554 00000 n -0000669690 00000 n -0000669845 00000 n -0000669979 00000 n -0000670138 00000 n -0000670276 00000 n -0000670435 00000 n -0000670584 00000 n -0000670748 00000 n -0000670893 00000 n -0000671063 00000 n -0000671212 00000 n -0000671371 00000 n -0000671520 00000 n -0000671689 00000 n -0000671837 00000 n -0000671992 00000 n -0000672136 00000 n -0000672295 00000 n -0000672444 00000 n -0000672613 00000 n -0000672761 00000 n -0000672916 00000 n -0000673061 00000 n -0000673231 00000 n -0000673380 00000 n -0000673540 00000 n -0000673690 00000 n -0000673860 00000 n -0000674009 00000 n -0000674166 00000 n -0000674312 00000 n -0000674482 00000 n -0000674631 00000 n -0000674790 00000 n -0000674939 00000 n -0000675109 00000 n -0000675258 00000 n -0000675426 00000 n -0000675573 00000 n -0000675745 00000 n -0000675896 00000 n -0000676055 00000 n -0000676204 00000 n -0000676373 00000 n -0000676521 00000 n -0000676677 00000 n -0000676823 00000 n -0000676995 00000 n -0000677146 00000 n -0000677306 00000 n -0000677456 00000 n -0000677625 00000 n -0000677773 00000 n -0000677941 00000 n -0000678088 00000 n -0000678261 00000 n -0000678413 00000 n -0000678574 00000 n -0000678725 00000 n -0000678896 00000 n -0000679046 00000 n -0000679202 00000 n -0000679348 00000 n -0000679521 00000 n -0000679673 00000 n -0000679834 00000 n -0000679985 00000 n -0000680155 00000 n -0000680304 00000 n -0000680466 00000 n -0000680609 00000 n -0000680780 00000 n -0000680930 00000 n -0000681077 00000 n -0000681214 00000 n -0000681372 00000 n -0000681509 00000 n -0000681661 00000 n -0000681793 00000 n -0000681953 00000 n -0000682091 00000 n -0000682250 00000 n -0000682398 00000 n -0000682556 00000 n -0000682702 00000 n -0000682871 00000 n -0000683018 00000 n -0000683184 00000 n -0000683328 00000 n -0000683499 00000 n -0000683648 00000 n -0000683807 00000 n -0000683955 00000 n -0000684113 00000 n -0000684259 00000 n -0000684428 00000 n -0000684575 00000 n -0000684737 00000 n -0000684880 00000 n -0000685051 00000 n -0000685200 00000 n -0000685360 00000 n -0000685509 00000 n -0000685668 00000 n -0000685815 00000 n -0000685985 00000 n -0000686133 00000 n -0000686288 00000 n -0000686431 00000 n -0000686602 00000 n -0000686751 00000 n -0000686911 00000 n -0000687060 00000 n -0000687231 00000 n -0000687380 00000 n -0000687545 00000 n -0000687690 00000 n -0000687849 00000 n -0000687997 00000 n -0000688166 00000 n -0000688313 00000 n -0000688515 00000 n -0000688697 00000 n -0000688869 00000 n -0000689019 00000 n -0000689179 00000 n -0000689328 00000 n -0000689497 00000 n -0000689644 00000 n -0000689844 00000 n -0000690022 00000 n -0000690195 00000 n -0000690346 00000 n -0000690507 00000 n -0000690657 00000 n -0000690828 00000 n -0000690977 00000 n -0000691145 00000 n -0000691291 00000 n -0000691464 00000 n -0000691615 00000 n -0000691776 00000 n -0000691926 00000 n -0000692085 00000 n -0000692232 00000 n -0000692399 00000 n -0000692544 00000 n -0000692700 00000 n -0000692844 00000 n -0000692991 00000 n -0000693127 00000 n -0000693285 00000 n -0000693421 00000 n -0000693579 00000 n -0000693726 00000 n -0000693874 00000 n -0000694011 00000 n -0000694180 00000 n -0000694327 00000 n -0000694514 00000 n -0000694679 00000 n -0000694850 00000 n -0000694999 00000 n -0000695158 00000 n -0000695306 00000 n -0000695475 00000 n -0000695622 00000 n -0000695791 00000 n -0000695938 00000 n -0000696111 00000 n -0000696262 00000 n -0000696420 00000 n -0000696566 00000 n -0000696731 00000 n -0000696884 00000 n -0000697048 00000 n -0000697201 00000 n -0000697382 00000 n -0000697541 00000 n -0000697709 00000 n -0000697855 00000 n -0000698022 00000 n -0000698167 00000 n -0000698335 00000 n -0000698481 00000 n -0000698641 00000 n -0000698790 00000 n -0000698953 00000 n -0000699094 00000 n -0000699259 00000 n -0000699413 00000 n -0000699579 00000 n -0000699723 00000 n -0000699893 00000 n -0000700041 00000 n -0000700225 00000 n -0000700389 00000 n -0000700566 00000 n -0000700721 00000 n -0000700886 00000 n -0000701029 00000 n -0000701205 00000 n -0000701359 00000 n -0000701528 00000 n -0000701675 00000 n -0000701842 00000 n -0000701987 00000 n -0000702272 00000 n -0000702351 00000 n -0000702515 00000 n -0000702706 00000 n -0000702934 00000 n -0000703151 00000 n -0000703321 00000 n -0000703539 00000 n -0000703785 00000 n -0000703958 00000 n -0000704139 00000 n -0000704404 00000 n -0000704589 00000 n -0000704770 00000 n -0000705027 00000 n -0000705212 00000 n -0000705393 00000 n -0000705650 00000 n -0000705827 00000 n -0000706026 00000 n -0000706221 00000 n -0000706403 00000 n -0000706723 00000 n -0000706908 00000 n -0000707089 00000 n -0000707413 00000 n -0000707603 00000 n -0000707790 00000 n -0000707971 00000 n -0000708255 00000 n -0000708444 00000 n -0000708643 00000 n -0000708839 00000 n -0000709021 00000 n -0000709317 00000 n -0000709506 00000 n -0000709693 00000 n -0000709874 00000 n -0000710254 00000 n -0000710443 00000 n -0000710643 00000 n -0000710824 00000 n -0000711133 00000 n -0000711327 00000 n -0000711517 00000 n -0000711814 00000 n -0000712007 00000 n -0000712210 00000 n -0000712396 00000 n -0000712680 00000 n -0000712869 00000 n -0000713054 00000 n -0000713375 00000 n -0000713569 00000 n -0000713760 00000 n -0000713945 00000 n -0000714329 00000 n -0000714522 00000 n -0000714726 00000 n -0000714911 00000 n -0000715224 00000 n -0000715418 00000 n -0000715622 00000 n -0000715808 00000 n -0000716109 00000 n -0000716303 00000 n -0000716508 00000 n -0000716694 00000 n -0000717004 00000 n -0000717199 00000 n -0000717404 00000 n -0000717578 00000 n -0000717931 00000 n -0000718125 00000 n -0000718329 00000 n -0000718515 00000 n -0000718832 00000 n -0000719027 00000 n -0000719232 00000 n -0000719418 00000 n -0000719783 00000 n -0000719966 00000 n -0000720170 00000 n -0000720370 00000 n -0000720556 00000 n -0000720942 00000 n -0000721136 00000 n -0000721340 00000 n -0000721528 00000 n -0000721714 00000 n -0000722103 00000 n -0000722297 00000 n -0000722501 00000 n -0000722702 00000 n -0000722888 00000 n -0000723170 00000 n -0000723364 00000 n -0000723556 00000 n -0000723742 00000 n -0000724031 00000 n -0000724221 00000 n -0000724407 00000 n -0000724788 00000 n -0000724983 00000 n -0000725187 00000 n -0000725374 00000 n -0000725723 00000 n -0000725906 00000 n -0000726110 00000 n -0000726296 00000 n -0000726658 00000 n -0000726852 00000 n -0000727057 00000 n -0000727258 00000 n -0000727445 00000 n -0000727690 00000 n -0000727869 00000 n -0000728055 00000 n -0000728336 00000 n -0000728526 00000 n -0000728712 00000 n -0000729016 00000 n -0000729210 00000 n -0000729414 00000 n -0000729601 00000 n -0000729829 00000 n -0000730031 00000 n -0000730216 00000 n -0000730441 00000 n -0000730666 00000 n -0000730910 00000 n -0000731102 00000 n -0000731290 00000 n -0000731487 00000 n -0000731696 00000 n -0000731872 00000 n -0000732096 00000 n -0000732285 00000 n -0000732493 00000 n -0000732765 00000 n -0000732998 00000 n -0000733182 00000 n -0000733410 00000 n -0000733614 00000 n -0000733789 00000 n -0000734327 00000 n -0000742195 00000 n -0000742411 00000 n -0000743774 00000 n -0000744843 00000 n -0000752449 00000 n -0000752670 00000 n -0000754033 00000 n -0000755112 00000 n -0000758373 00000 n -0000758599 00000 n -0000759962 00000 n -0000761078 00000 n -0000763281 00000 n -0000763495 00000 n -0000764858 00000 n +0000363244 00000 n +0000363301 00000 n +0000363653 00000 n +0000363710 00000 n +0000363767 00000 n +0000363824 00000 n +0000363882 00000 n +0000363939 00000 n +0000363996 00000 n +0000364167 00000 n +0000364225 00000 n +0000380362 00000 n +0000380619 00000 n +0000380664 00000 n +0000380721 00000 n +0000380767 00000 n +0000380944 00000 n +0000381002 00000 n +0000401355 00000 n +0000401620 00000 n +0000401784 00000 n +0000401842 00000 n +0000402025 00000 n +0000402082 00000 n +0000424068 00000 n +0000424357 00000 n +0000424414 00000 n +0000424582 00000 n +0000424749 00000 n +0000424919 00000 n +0000425091 00000 n +0000425251 00000 n +0000446818 00000 n +0000447091 00000 n +0000447148 00000 n +0000447317 00000 n +0000447486 00000 n +0000447655 00000 n +0000468873 00000 n +0000469138 00000 n +0000469289 00000 n +0000469428 00000 n +0000469486 00000 n +0000491197 00000 n +0000491486 00000 n +0000491654 00000 n +0000491801 00000 n +0000491950 00000 n +0000492101 00000 n +0000492240 00000 n +0000492298 00000 n +0000492848 00000 n +0000515593 00000 n +0000515882 00000 n +0000516050 00000 n +0000516197 00000 n +0000516346 00000 n +0000516497 00000 n +0000516636 00000 n +0000540028 00000 n +0000540333 00000 n +0000540390 00000 n +0000540560 00000 n +0000540731 00000 n +0000540899 00000 n +0000541072 00000 n +0000541251 00000 n +0000541413 00000 n +0000541591 00000 n +0000562286 00000 n +0000562551 00000 n +0000562608 00000 n +0000562777 00000 n +0000562966 00000 n +0000563024 00000 n +0000584729 00000 n +0000585002 00000 n +0000585165 00000 n +0000585222 00000 n +0000585409 00000 n +0000585571 00000 n +0000606379 00000 n +0000606660 00000 n +0000606717 00000 n +0000606892 00000 n +0000607064 00000 n +0000607122 00000 n +0000607292 00000 n +0000607461 00000 n +0000628119 00000 n +0000628424 00000 n +0000628599 00000 n +0000628763 00000 n +0000628927 00000 n +0000628984 00000 n +0000629041 00000 n +0000629211 00000 n +0000629381 00000 n +0000629546 00000 n +0000629721 00000 n +0000649135 00000 n +0000649400 00000 n +0000649564 00000 n +0000649621 00000 n +0000649798 00000 n +0000649856 00000 n +0000657174 00000 n +0000657439 00000 n +0000657588 00000 n +0000657737 00000 n +0000657881 00000 n +0000658026 00000 n +0000658191 00000 n +0000658347 00000 n +0000658505 00000 n +0000658652 00000 n +0000658814 00000 n +0000658956 00000 n +0000659121 00000 n +0000659265 00000 n +0000659422 00000 n +0000659568 00000 n +0000659724 00000 n +0000659869 00000 n +0000660024 00000 n +0000660168 00000 n +0000660327 00000 n +0000660475 00000 n +0000660633 00000 n +0000660780 00000 n +0000660935 00000 n +0000661080 00000 n +0000661240 00000 n +0000661389 00000 n +0000661547 00000 n +0000661694 00000 n +0000661849 00000 n +0000661994 00000 n +0000662163 00000 n +0000662311 00000 n +0000662472 00000 n +0000662622 00000 n +0000662778 00000 n +0000662924 00000 n +0000663082 00000 n +0000663229 00000 n +0000663420 00000 n +0000663590 00000 n +0000663750 00000 n +0000663899 00000 n +0000664059 00000 n +0000664208 00000 n +0000664399 00000 n +0000664569 00000 n +0000664740 00000 n +0000664890 00000 n +0000665049 00000 n +0000665197 00000 n +0000665357 00000 n +0000665506 00000 n +0000665677 00000 n +0000665838 00000 n +0000666008 00000 n +0000666157 00000 n +0000666316 00000 n +0000666464 00000 n +0000666621 00000 n +0000666768 00000 n +0000666928 00000 n +0000667077 00000 n +0000667244 00000 n +0000667390 00000 n +0000667562 00000 n +0000667713 00000 n +0000667874 00000 n +0000668024 00000 n +0000668183 00000 n +0000668331 00000 n +0000668523 00000 n +0000668704 00000 n +0000668874 00000 n +0000669023 00000 n +0000669170 00000 n +0000669306 00000 n +0000669453 00000 n +0000669589 00000 n +0000669743 00000 n +0000669876 00000 n +0000670035 00000 n +0000670173 00000 n +0000670332 00000 n +0000670481 00000 n +0000670644 00000 n +0000670788 00000 n +0000670958 00000 n +0000671107 00000 n +0000671266 00000 n +0000671415 00000 n +0000671584 00000 n +0000671732 00000 n +0000671887 00000 n +0000672031 00000 n +0000672190 00000 n +0000672339 00000 n +0000672508 00000 n +0000672656 00000 n +0000672810 00000 n +0000672954 00000 n +0000673124 00000 n +0000673273 00000 n +0000673433 00000 n +0000673583 00000 n +0000673753 00000 n +0000673902 00000 n +0000674058 00000 n +0000674203 00000 n +0000674373 00000 n +0000674522 00000 n +0000674681 00000 n +0000674830 00000 n +0000675000 00000 n +0000675149 00000 n +0000675316 00000 n +0000675462 00000 n +0000675634 00000 n +0000675785 00000 n +0000675944 00000 n +0000676093 00000 n +0000676262 00000 n +0000676410 00000 n +0000676565 00000 n +0000676710 00000 n +0000676882 00000 n +0000677033 00000 n +0000677193 00000 n +0000677343 00000 n +0000677512 00000 n +0000677660 00000 n +0000677827 00000 n +0000677973 00000 n +0000678146 00000 n +0000678298 00000 n +0000678459 00000 n +0000678610 00000 n +0000678781 00000 n +0000678931 00000 n +0000679087 00000 n +0000679233 00000 n +0000679406 00000 n +0000679558 00000 n +0000679719 00000 n +0000679870 00000 n +0000680040 00000 n +0000680189 00000 n +0000680350 00000 n +0000680492 00000 n +0000680663 00000 n +0000680813 00000 n +0000680960 00000 n +0000681097 00000 n +0000681255 00000 n +0000681392 00000 n +0000681544 00000 n +0000681676 00000 n +0000681836 00000 n +0000681974 00000 n +0000682133 00000 n +0000682281 00000 n +0000682439 00000 n +0000682585 00000 n +0000682754 00000 n +0000682901 00000 n +0000683066 00000 n +0000683209 00000 n +0000683380 00000 n +0000683529 00000 n +0000683688 00000 n +0000683836 00000 n +0000683994 00000 n +0000684140 00000 n +0000684309 00000 n +0000684456 00000 n +0000684618 00000 n +0000684761 00000 n +0000684932 00000 n +0000685081 00000 n +0000685241 00000 n +0000685390 00000 n +0000685549 00000 n +0000685696 00000 n +0000685866 00000 n +0000686014 00000 n +0000686169 00000 n +0000686312 00000 n +0000686483 00000 n +0000686632 00000 n +0000686792 00000 n +0000686941 00000 n +0000687112 00000 n +0000687261 00000 n +0000687425 00000 n +0000687569 00000 n +0000687728 00000 n +0000687876 00000 n +0000688045 00000 n +0000688192 00000 n +0000688394 00000 n +0000688576 00000 n +0000688748 00000 n +0000688898 00000 n +0000689058 00000 n +0000689207 00000 n +0000689376 00000 n +0000689523 00000 n +0000689723 00000 n +0000689901 00000 n +0000690074 00000 n +0000690225 00000 n +0000690386 00000 n +0000690536 00000 n +0000690707 00000 n +0000690856 00000 n +0000691023 00000 n +0000691168 00000 n +0000691341 00000 n +0000691492 00000 n +0000691653 00000 n +0000691803 00000 n +0000691962 00000 n +0000692109 00000 n +0000692276 00000 n +0000692421 00000 n +0000692576 00000 n +0000692719 00000 n +0000692866 00000 n +0000693002 00000 n +0000693160 00000 n +0000693296 00000 n +0000693454 00000 n +0000693601 00000 n +0000693749 00000 n +0000693886 00000 n +0000694055 00000 n +0000694202 00000 n +0000694389 00000 n +0000694554 00000 n +0000694725 00000 n +0000694874 00000 n +0000695033 00000 n +0000695181 00000 n +0000695350 00000 n +0000695497 00000 n +0000695666 00000 n +0000695813 00000 n +0000695986 00000 n +0000696137 00000 n +0000696295 00000 n +0000696441 00000 n +0000696606 00000 n +0000696759 00000 n +0000696923 00000 n +0000697076 00000 n +0000697257 00000 n +0000697416 00000 n +0000697584 00000 n +0000697730 00000 n +0000697897 00000 n +0000698042 00000 n +0000698210 00000 n +0000698356 00000 n +0000698516 00000 n +0000698665 00000 n +0000698828 00000 n +0000698969 00000 n +0000699134 00000 n +0000699288 00000 n +0000699454 00000 n +0000699598 00000 n +0000699768 00000 n +0000699916 00000 n +0000700100 00000 n +0000700264 00000 n +0000700441 00000 n +0000700596 00000 n +0000700761 00000 n +0000700904 00000 n +0000701080 00000 n +0000701234 00000 n +0000701403 00000 n +0000701550 00000 n +0000701717 00000 n +0000701862 00000 n +0000702147 00000 n +0000702226 00000 n +0000702390 00000 n +0000702581 00000 n +0000702809 00000 n +0000703026 00000 n +0000703196 00000 n +0000703414 00000 n +0000703660 00000 n +0000703833 00000 n +0000704014 00000 n +0000704279 00000 n +0000704464 00000 n +0000704645 00000 n +0000704902 00000 n +0000705087 00000 n +0000705268 00000 n +0000705525 00000 n +0000705702 00000 n +0000705901 00000 n +0000706096 00000 n +0000706278 00000 n +0000706598 00000 n +0000706783 00000 n +0000706964 00000 n +0000707288 00000 n +0000707478 00000 n +0000707665 00000 n +0000707846 00000 n +0000708130 00000 n +0000708319 00000 n +0000708518 00000 n +0000708714 00000 n +0000708896 00000 n +0000709192 00000 n +0000709381 00000 n +0000709568 00000 n +0000709749 00000 n +0000710129 00000 n +0000710318 00000 n +0000710518 00000 n +0000710699 00000 n +0000711008 00000 n +0000711202 00000 n +0000711392 00000 n +0000711689 00000 n +0000711882 00000 n +0000712085 00000 n +0000712271 00000 n +0000712555 00000 n +0000712744 00000 n +0000712929 00000 n +0000713250 00000 n +0000713444 00000 n +0000713635 00000 n +0000713820 00000 n +0000714204 00000 n +0000714397 00000 n +0000714601 00000 n +0000714786 00000 n +0000715099 00000 n +0000715293 00000 n +0000715497 00000 n +0000715683 00000 n +0000715984 00000 n +0000716178 00000 n +0000716383 00000 n +0000716569 00000 n +0000716879 00000 n +0000717074 00000 n +0000717279 00000 n +0000717453 00000 n +0000717806 00000 n +0000718000 00000 n +0000718204 00000 n +0000718390 00000 n +0000718707 00000 n +0000718902 00000 n +0000719107 00000 n +0000719293 00000 n +0000719658 00000 n +0000719841 00000 n +0000720045 00000 n +0000720245 00000 n +0000720431 00000 n +0000720817 00000 n +0000721011 00000 n +0000721215 00000 n +0000721403 00000 n +0000721589 00000 n +0000721978 00000 n +0000722172 00000 n +0000722376 00000 n +0000722577 00000 n +0000722763 00000 n +0000723045 00000 n +0000723239 00000 n +0000723431 00000 n +0000723617 00000 n +0000723906 00000 n +0000724096 00000 n +0000724282 00000 n +0000724663 00000 n +0000724858 00000 n +0000725062 00000 n +0000725249 00000 n +0000725598 00000 n +0000725781 00000 n +0000725985 00000 n +0000726171 00000 n +0000726533 00000 n +0000726727 00000 n +0000726932 00000 n +0000727133 00000 n +0000727320 00000 n +0000727565 00000 n +0000727744 00000 n +0000727930 00000 n +0000728211 00000 n +0000728401 00000 n +0000728587 00000 n +0000728891 00000 n +0000729085 00000 n +0000729289 00000 n +0000729476 00000 n +0000729704 00000 n +0000729906 00000 n +0000730091 00000 n +0000730316 00000 n +0000730541 00000 n +0000730785 00000 n +0000730977 00000 n +0000731165 00000 n +0000731362 00000 n +0000731571 00000 n +0000731747 00000 n +0000731971 00000 n +0000732160 00000 n +0000732368 00000 n +0000732640 00000 n +0000732873 00000 n +0000733057 00000 n +0000733285 00000 n +0000733489 00000 n +0000733664 00000 n +0000734202 00000 n +0000742070 00000 n +0000742286 00000 n +0000743649 00000 n +0000744718 00000 n +0000752324 00000 n +0000752545 00000 n +0000753908 00000 n +0000754987 00000 n +0000758248 00000 n +0000758474 00000 n +0000759837 00000 n +0000760953 00000 n +0000763156 00000 n +0000763370 00000 n +0000764733 00000 n trailer -<< /Size 750 +<< /Size 749 /Root 2 0 R /Info 1 0 R >> startxref -765983 +765858 %%EOF diff --git a/extra/sql/bulkload/create-tables.sql b/extra/sql/bulkload/create-tables.sql index 522086c9..2a7f4c1c 100644 --- a/extra/sql/bulkload/create-tables.sql +++ b/extra/sql/bulkload/create-tables.sql @@ -119,6 +119,7 @@ configurations_json json, json_representation json not null, pdp_group varchar(255), + pdp_sub_group varchar(255), context varchar(255), dcae_blueprint_id varchar(255), dcae_deployment_id varchar(255), @@ -140,6 +141,7 @@ configurations_json json, json_representation json not null, pdp_group varchar(255), + pdp_sub_group varchar(255), loop_element_model_id varchar(255), loop_id varchar(255) not null, policy_model_type varchar(255), @@ -156,6 +158,7 @@ updated_timestamp datetime(6) not null, policy_acronym varchar(255), policy_tosca MEDIUMTEXT, + policy_pdp_group json, primary key (policy_model_type, version) ) engine=InnoDB; diff --git a/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java index 02e2dd0b..b3fcb6f1 100644 --- a/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java +++ b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java @@ -25,17 +25,28 @@ package org.onap.clamp.clds.client; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; + import java.util.ArrayList; +import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.builder.ExchangeBuilder; +import org.json.simple.parser.ParseException; import org.onap.clamp.clds.config.ClampProperties; import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService; +import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.loop.template.PolicyModel; +import org.onap.clamp.loop.template.PolicyModelId; import org.onap.clamp.loop.template.PolicyModelsService; +import org.onap.clamp.policy.pdpgroup.PdpGroup; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.yaml.snakeyaml.Yaml; @@ -53,11 +64,9 @@ import org.yaml.snakeyaml.Yaml; public class PolicyEngineServices { private final CamelContext camelContext; - private final PolicyModelsService policyModelsSService; + private final PolicyModelsService policyModelsService; private static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyEngineServices.class); - private static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); - private static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); private static int retryInterval = 0; private static int retryLimit = 1; @@ -70,12 +79,13 @@ public class PolicyEngineServices { * @param camelContext Camel context bean * @param clampProperties ClampProperties bean * @param policyModelsSService policyModel repository bean + * @param policyModelsService policyModel service */ @Autowired public PolicyEngineServices(CamelContext camelContext, ClampProperties clampProperties, PolicyModelsService policyModelsSService) { this.camelContext = camelContext; - this.policyModelsSService = policyModelsSService; + this.policyModelsService = policyModelsSService; if (clampProperties.getStringValue(POLICY_RETRY_LIMIT) != null) { retryLimit = Integer.parseInt(clampProperties.getStringValue(POLICY_RETRY_LIMIT)); } @@ -122,7 +132,7 @@ public class PolicyEngineServices { policyTypesList.parallelStream().forEach(policyType -> { Map.Entry<String, Object> policyTypeEntry = (Map.Entry<String, Object>) new ArrayList(policyType.entrySet()).get(0); - policyModelsSService.createPolicyInDbIfNeeded( + policyModelsService.createPolicyInDbIfNeeded( createPolicyModelFromPolicyEngine(policyTypeEntry.getKey(), ((String) ((LinkedHashMap<String, Object>) policyTypeEntry.getValue()).get("version")))); }); @@ -135,7 +145,7 @@ public class PolicyEngineServices { * @return A yaml containing all policy Types and all data types */ public String downloadAllPolicies() { - return callCamelRoute(ExchangeBuilder.anExchange(camelContext).build(), "direct:get-all-policy-models"); + return callCamelRoute(ExchangeBuilder.anExchange(camelContext).build(), "direct:get-all-policy-models", "Get all policies"); } /** @@ -147,16 +157,43 @@ public class PolicyEngineServices { */ public String downloadOnePolicy(String policyType, String policyVersion) { return callCamelRoute(ExchangeBuilder.anExchange(camelContext).withProperty("policyModelName", policyType) - .withProperty("policyModelVersion", policyVersion).build(), "direct:get-policy-model"); + .withProperty("policyModelVersion", policyVersion).build(), "direct:get-policy-model", "Get one policy"); + } + + /** + * This method can be used to download all Pdp Groups data from policy engine. + * + */ + public void downloadPdpGroups() { + String responseBody = callCamelRoute(ExchangeBuilder.anExchange(camelContext).build(), "direct:get-all-pdp-groups", "Get Pdp Groups"); + + if (responseBody == null || responseBody.isEmpty()) { + logger.warn("getPdpGroups returned by policy engine could not be decoded, as it's null or empty"); + return; + } + + JsonObject jsonObj = JsonUtils.GSON.fromJson(responseBody, JsonObject.class); + + List<PdpGroup> pdpGroupList = new LinkedList<>(); + JsonArray itemsArray = (JsonArray) jsonObj.get("groups"); + + Iterator it = itemsArray.iterator(); + while (it.hasNext()) { + JsonObject item = (JsonObject) it.next(); + PdpGroup pdpGroup = JsonUtils.GSON.fromJson(item.toString(), PdpGroup.class); + pdpGroupList.add(pdpGroup); + } + + policyModelsService.updatePdpGroupInfo(pdpGroupList); } - private String callCamelRoute(Exchange exchange, String camelFlow) { + private String callCamelRoute(Exchange exchange, String camelFlow, String logMsg) { for (int i = 0; i < retryLimit; i++) { Exchange exchangeResponse = camelContext.createProducerTemplate().send(camelFlow, exchange); if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) { return (String) exchangeResponse.getIn().getBody(); } else { - logger.info("Policy query " + retryInterval + "ms before retrying ..."); + logger.info(logMsg + " query " + retryInterval + "ms before retrying ..."); // wait for a while and try to connect to DCAE again try { Thread.sleep(retryInterval); diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java index fd0110c7..7334eceb 100644 --- a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java +++ b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java @@ -23,6 +23,7 @@ package org.onap.clamp.loop.template; +import com.google.gson.JsonObject; import com.google.gson.annotations.Expose; import java.io.Serializable; import java.util.HashSet; @@ -34,6 +35,11 @@ import javax.persistence.Id; import javax.persistence.IdClass; import javax.persistence.ManyToMany; import javax.persistence.Table; + +import org.hibernate.annotations.Type; +import org.hibernate.annotations.TypeDef; +import org.hibernate.annotations.TypeDefs; +import org.onap.clamp.dao.model.jsontype.StringJsonUserType; import org.onap.clamp.loop.common.AuditEntity; import org.onap.clamp.util.SemanticVersioning; @@ -44,6 +50,7 @@ import org.onap.clamp.util.SemanticVersioning; @Entity @Table(name = "policy_models") @IdClass(PolicyModelId.class) +@TypeDefs({@TypeDef(name = "json", typeClass = StringJsonUserType.class)}) public class PolicyModel extends AuditEntity implements Serializable, Comparable<PolicyModel> { /** @@ -78,6 +85,10 @@ public class PolicyModel extends AuditEntity implements Serializable, Comparable @ManyToMany(mappedBy = "policyModels", fetch = FetchType.EAGER) private Set<LoopElementModel> usedByElementModels = new HashSet<>(); + @Type(type = "json") + @Column(columnDefinition = "json", name = "policy_pdp_group") + private JsonObject policyPdpGroup; + /** * usedByElementModels getter. * @@ -88,6 +99,24 @@ public class PolicyModel extends AuditEntity implements Serializable, Comparable } /** + * policyPdpGroup getter. + * + * @return the policyPdpGroup + */ + public JsonObject getPolicyPdpGroup() { + return policyPdpGroup; + } + + /** + * policyPdpGroup setter. + * + * @param policyPdpGroup the policyPdpGroup to set + */ + public void setPolicyPdpGroup(JsonObject policyPdpGroup) { + this.policyPdpGroup = policyPdpGroup; + } + + /** * policyModelTosca getter. * * @return the policyModelTosca diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java b/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java index eb83c660..b38be942 100644 --- a/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java +++ b/src/main/java/org/onap/clamp/loop/template/PolicyModelsService.java @@ -23,12 +23,14 @@ package org.onap.clamp.loop.template; +import com.google.gson.JsonArray; import com.google.gson.JsonObject; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.onap.clamp.clds.tosca.ToscaSchemaConstants; import org.onap.clamp.clds.tosca.ToscaYamlToJsonConvertor; +import org.onap.clamp.policy.pdpgroup.PdpGroup; import org.onap.clamp.util.SemanticVersioning; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,13 +49,30 @@ public class PolicyModelsService { toscaYamlToJsonConvertor = convertor; } + /** + * Save or Update Policy Model. + * + * @param policyModel + * The policyModel + * @return The Policy Model + */ public PolicyModel saveOrUpdatePolicyModel(PolicyModel policyModel) { return policyModelsRepository.save(policyModel); } /** - * Creates the Tosca Policy Model from a policy tosca file, - * if the same type already exists in database, it increases the version automatically. + * Verify whether Policy Model exist by ID. + * + * @param policyModelId + * The policyModel Id + * @return The flag indicates whether Policy Model exist + */ + public boolean existsById(PolicyModelId policyModelId) { + return policyModelsRepository.existsById(policyModelId); + } + + /** + * Creates or updates the Tosca Policy Model. * * @param policyModelType The policyModeltype in Tosca yaml * @param policyModelTosca The Policymodel object @@ -137,4 +156,30 @@ public class PolicyModelsService { policyModelsRepository.save(policyModel); } } + + /** + * Update the Pdp Group info in Policy Model DB. + * + * @param pdpGroupList The list of Pdp Group info received from Policy Engine + */ + public void updatePdpGroupInfo(List<PdpGroup> pdpGroupList) { + List<PolicyModel> policyModelList = policyModelsRepository.findAll(); + for (PolicyModel policyModel : policyModelList) { + JsonArray supportedPdpGroups = new JsonArray(); + for (PdpGroup pdpGroup : pdpGroupList) { + JsonObject supportedPdpGroup = pdpGroup.getSupportedSubgroups(policyModel.getPolicyModelType(), + policyModel.getVersion()); + if (supportedPdpGroup != null) { + supportedPdpGroups.add(supportedPdpGroup); + } + } + + if (supportedPdpGroups.size() > 0) { + JsonObject supportedPdpJson = new JsonObject (); + supportedPdpJson.add("supportedPdpGroups", supportedPdpGroups); + policyModel.setPolicyPdpGroup(supportedPdpJson); + policyModelsRepository.save(policyModel); + } + } + } } diff --git a/src/main/java/org/onap/clamp/policy/Policy.java b/src/main/java/org/onap/clamp/policy/Policy.java index e1c08eea..cce9e567 100644 --- a/src/main/java/org/onap/clamp/policy/Policy.java +++ b/src/main/java/org/onap/clamp/policy/Policy.java @@ -68,6 +68,10 @@ public abstract class Policy extends AuditEntity { @Column(name = "pdp_group") private String pdpGroup; + @Expose + @Column(name = "pdp_sub_group") + private String pdpSubGroup; + public abstract String createPolicyPayload() throws UnsupportedEncodingException; /** @@ -155,6 +159,24 @@ public abstract class Policy extends AuditEntity { } /** + * pdpSubGroup getter. + * + * @return the pdpSubGroup + */ + public String getPdpSubGroup() { + return pdpSubGroup; + } + + /** + * pdpSubGroup setter. + * + * @param pdpSubGroup the pdpSubGroup to set + */ + public void setPdpSubGroup(String pdpSubGroup) { + this.pdpSubGroup = pdpSubGroup; + } + + /** * Generate the policy name. * * @param policyType The policy type diff --git a/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java b/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java index bd20eccb..ac054d8a 100644 --- a/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java +++ b/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java @@ -28,6 +28,7 @@ import com.att.eelf.configuration.EELFManager; import java.time.Instant; +import org.json.simple.parser.ParseException; import org.onap.clamp.clds.client.PolicyEngineServices; import org.onap.clamp.loop.template.PolicyModelsRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -70,5 +71,8 @@ public class PolicyEngineController { return lastInstantExecuted; } - + @Scheduled(fixedRate = 300000) + public synchronized void downloadPdpGroups() throws ParseException { + policyEngineServices.downloadPdpGroups(); + } } diff --git a/src/main/java/org/onap/clamp/policy/pdpgroup/PdpGroup.java b/src/main/java/org/onap/clamp/policy/pdpgroup/PdpGroup.java new file mode 100644 index 00000000..a3cf4e05 --- /dev/null +++ b/src/main/java/org/onap/clamp/policy/pdpgroup/PdpGroup.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.policy.pdpgroup; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.annotations.Expose; + +import java.util.List; + +/** + * This class maps the get Pdp Group response to a nice pojo. + */ +public class PdpGroup { + + @Expose + private String name; + + @Expose + private String pdpGroupState; + + @Expose + private List<PdpSubgroup> pdpSubgroups; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPdpGroupState() { + return pdpGroupState; + } + + public void setPdpGroupState(String pdpGroupState) { + this.pdpGroupState = pdpGroupState; + } + + public List<PdpSubgroup> getPdpSubgroups() { + return pdpSubgroups; + } + + public void setPdpSubgroups(List<PdpSubgroup> pdpSubgroups) { + this.pdpSubgroups = pdpSubgroups; + } + + /** + * Get supported subGroups based on the defined policy type and version. + * @param policyType The policy type + * @param version The version + * @return The supported subGroup list in Json format + */ + public JsonObject getSupportedSubgroups(String policyType, String version) { + if (!pdpGroupState.equalsIgnoreCase("ACTIVE")) { + return null; + } + JsonArray supportedSubgroups = new JsonArray(); + for (PdpSubgroup subGroup : pdpSubgroups) { + if (subGroup.getSupportedPolicyTypes().contains(new PolicyModelKey(policyType, version))) { + supportedSubgroups.add(subGroup.getPdpType()); + } + } + if (supportedSubgroups.size() > 0) { + JsonObject supportedPdpGroup = new JsonObject(); + supportedPdpGroup.add(this.name, supportedSubgroups); + return supportedPdpGroup; + } + return null; + } +} diff --git a/src/main/java/org/onap/clamp/policy/pdpgroup/PdpSubgroup.java b/src/main/java/org/onap/clamp/policy/pdpgroup/PdpSubgroup.java new file mode 100644 index 00000000..28de79ab --- /dev/null +++ b/src/main/java/org/onap/clamp/policy/pdpgroup/PdpSubgroup.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.policy.pdpgroup; + +import com.google.gson.annotations.Expose; +import java.util.List; + +/** + * This class maps the Policy get PDP Group response to a nice pojo. + */ +public class PdpSubgroup { + + @Expose + private String pdpType; + + @Expose + private List<PolicyModelKey> supportedPolicyTypes; + + public String getPdpType() { + return pdpType; + } + + public void setPdpType(String pdpType) { + this.pdpType = pdpType; + } + + public List<PolicyModelKey> getSupportedPolicyTypes() { + return supportedPolicyTypes; + } + + public void setSupportedPolicyTypes(List<PolicyModelKey> supportedPolicyTypes) { + this.supportedPolicyTypes = supportedPolicyTypes; + } + +} diff --git a/src/main/java/org/onap/clamp/policy/pdpgroup/PolicyModelKey.java b/src/main/java/org/onap/clamp/policy/pdpgroup/PolicyModelKey.java new file mode 100644 index 00000000..707b3bd2 --- /dev/null +++ b/src/main/java/org/onap/clamp/policy/pdpgroup/PolicyModelKey.java @@ -0,0 +1,126 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.policy.pdpgroup; + +import com.google.gson.annotations.Expose; + +import java.io.Serializable; + +public class PolicyModelKey implements Serializable { + + /** + * The serial version ID. + */ + private static final long serialVersionUID = 3307410842013230886L; + + @Expose + private String name; + + @Expose + private String version; + + /** + * Constructor. + */ + public PolicyModelKey(String name, String version) { + this.name = name; + this.version = version; + } + + /** + * name getter. + * + * @return the name + */ + public String getName() { + return name; + } + + /** + * name setter. + * + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * version getter. + * + * @return the version + */ + public String getVersion() { + return version; + } + + /** + * version setter. + * + * @param version the version to set + */ + public void setVersion(String version) { + this.version = version; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((version == null) ? 0 : version.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + PolicyModelKey other = (PolicyModelKey) obj; + if (name == null) { + if (other.name != null) { + return false; + } + } else if (!name.equals(other.name)) { + if (!name.matches(other.name)) { + return false; + } + } + if (version == null) { + if (other.version != null) { + return false; + } + } else if (!version.equals(other.version)) { + return false; + } + return true; + } +} diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html index 16938529..0138d9a3 100644 --- a/src/main/resources/META-INF/resources/swagger.html +++ b/src/main/resources/META-INF/resources/swagger.html @@ -444,25 +444,25 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </li> <li><a href="#_paths">2. Paths</a> <ul class="sectlevel2"> -<li><a href="#_route123">2.1. GET /v1/healthcheck</a> +<li><a href="#_route92">2.1. GET /v1/healthcheck</a> <ul class="sectlevel3"> <li><a href="#_responses">2.1.1. Responses</a></li> <li><a href="#_produces">2.1.2. Produces</a></li> </ul> </li> -<li><a href="#_route124">2.2. GET /v1/user/getUser</a> +<li><a href="#_route93">2.2. GET /v1/user/getUser</a> <ul class="sectlevel3"> <li><a href="#_responses_2">2.2.1. Responses</a></li> <li><a href="#_produces_2">2.2.2. Produces</a></li> </ul> </li> -<li><a href="#_route111">2.3. GET /v2/dictionary</a> +<li><a href="#_route80">2.3. GET /v2/dictionary</a> <ul class="sectlevel3"> <li><a href="#_responses_3">2.3.1. Responses</a></li> <li><a href="#_produces_3">2.3.2. Produces</a></li> </ul> </li> -<li><a href="#_route113">2.4. PUT /v2/dictionary</a> +<li><a href="#_route82">2.4. PUT /v2/dictionary</a> <ul class="sectlevel3"> <li><a href="#_parameters">2.4.1. Parameters</a></li> <li><a href="#_responses_4">2.4.2. Responses</a></li> @@ -491,7 +491,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_7">2.7.4. Produces</a></li> </ul> </li> -<li><a href="#_route115">2.8. DELETE /v2/dictionary/{name}</a> +<li><a href="#_route84">2.8. DELETE /v2/dictionary/{name}</a> <ul class="sectlevel3"> <li><a href="#_parameters_4">2.8.1. Parameters</a></li> <li><a href="#_responses_8">2.8.2. Responses</a></li> @@ -505,75 +505,75 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_9">2.9.3. Produces</a></li> </ul> </li> -<li><a href="#_route107">2.10. PUT /v2/loop/delete/{loopName}</a> +<li><a href="#_route76">2.10. PUT /v2/loop/delete/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_6">2.10.1. Parameters</a></li> <li><a href="#_responses_10">2.10.2. Responses</a></li> </ul> </li> -<li><a href="#_route101">2.11. PUT /v2/loop/deploy/{loopName}</a> +<li><a href="#_route70">2.11. PUT /v2/loop/deploy/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_7">2.11.1. Parameters</a></li> <li><a href="#_responses_11">2.11.2. Responses</a></li> <li><a href="#_produces_10">2.11.3. Produces</a></li> </ul> </li> -<li><a href="#_route95">2.12. GET /v2/loop/getAllNames</a> +<li><a href="#_route64">2.12. GET /v2/loop/getAllNames</a> <ul class="sectlevel3"> <li><a href="#_responses_12">2.12.1. Responses</a></li> <li><a href="#_produces_11">2.12.2. Produces</a></li> </ul> </li> -<li><a href="#_route108">2.13. GET /v2/loop/getstatus/{loopName}</a> +<li><a href="#_route77">2.13. GET /v2/loop/getstatus/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_8">2.13.1. Parameters</a></li> <li><a href="#_responses_13">2.13.2. Responses</a></li> <li><a href="#_produces_12">2.13.3. Produces</a></li> </ul> </li> -<li><a href="#_route102">2.14. PUT /v2/loop/refreshOpPolicyJsonSchema/{loopName}</a> +<li><a href="#_route71">2.14. PUT /v2/loop/refreshOpPolicyJsonSchema/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_9">2.14.1. Parameters</a></li> <li><a href="#_responses_14">2.14.2. Responses</a></li> <li><a href="#_produces_13">2.14.3. Produces</a></li> </ul> </li> -<li><a href="#_route105">2.15. PUT /v2/loop/restart/{loopName}</a> +<li><a href="#_route74">2.15. PUT /v2/loop/restart/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_10">2.15.1. Parameters</a></li> <li><a href="#_responses_15">2.15.2. Responses</a></li> <li><a href="#_produces_14">2.15.3. Produces</a></li> </ul> </li> -<li><a href="#_route104">2.16. PUT /v2/loop/stop/{loopName}</a> +<li><a href="#_route73">2.16. PUT /v2/loop/stop/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_11">2.16.1. Parameters</a></li> <li><a href="#_responses_16">2.16.2. Responses</a></li> <li><a href="#_produces_15">2.16.3. Produces</a></li> </ul> </li> -<li><a href="#_route106">2.17. PUT /v2/loop/submit/{loopName}</a> +<li><a href="#_route75">2.17. PUT /v2/loop/submit/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_12">2.17.1. Parameters</a></li> <li><a href="#_responses_17">2.17.2. Responses</a></li> <li><a href="#_produces_16">2.17.3. Produces</a></li> </ul> </li> -<li><a href="#_route97">2.18. GET /v2/loop/svgRepresentation/{loopName}</a> +<li><a href="#_route66">2.18. GET /v2/loop/svgRepresentation/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_13">2.18.1. Parameters</a></li> <li><a href="#_responses_18">2.18.2. Responses</a></li> <li><a href="#_produces_17">2.18.3. Produces</a></li> </ul> </li> -<li><a href="#_route103">2.19. PUT /v2/loop/undeploy/{loopName}</a> +<li><a href="#_route72">2.19. PUT /v2/loop/undeploy/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_14">2.19.1. Parameters</a></li> <li><a href="#_responses_19">2.19.2. Responses</a></li> <li><a href="#_produces_18">2.19.3. Produces</a></li> </ul> </li> -<li><a href="#_route98">2.20. POST /v2/loop/updateGlobalProperties/{loopName}</a> +<li><a href="#_route67">2.20. POST /v2/loop/updateGlobalProperties/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_15">2.20.1. Parameters</a></li> <li><a href="#_responses_20">2.20.2. Responses</a></li> @@ -581,7 +581,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_19">2.20.4. Produces</a></li> </ul> </li> -<li><a href="#_route100">2.21. POST /v2/loop/updateMicroservicePolicy/{loopName}</a> +<li><a href="#_route69">2.21. POST /v2/loop/updateMicroservicePolicy/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_16">2.21.1. Parameters</a></li> <li><a href="#_responses_21">2.21.2. Responses</a></li> @@ -589,7 +589,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_20">2.21.4. Produces</a></li> </ul> </li> -<li><a href="#_route99">2.22. POST /v2/loop/updateOperationalPolicies/{loopName}</a> +<li><a href="#_route68">2.22. POST /v2/loop/updateOperationalPolicies/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_17">2.22.1. Parameters</a></li> <li><a href="#_responses_22">2.22.2. Responses</a></li> @@ -597,14 +597,14 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_21">2.22.4. Produces</a></li> </ul> </li> -<li><a href="#_route96">2.23. GET /v2/loop/{loopName}</a> +<li><a href="#_route65">2.23. GET /v2/loop/{loopName}</a> <ul class="sectlevel3"> <li><a href="#_parameters_18">2.23.1. Parameters</a></li> <li><a href="#_responses_23">2.23.2. Responses</a></li> <li><a href="#_produces_22">2.23.3. Produces</a></li> </ul> </li> -<li><a href="#_route118">2.24. GET /v2/policyToscaModels</a> +<li><a href="#_route87">2.24. GET /v2/policyToscaModels</a> <ul class="sectlevel3"> <li><a href="#_responses_24">2.24.1. Responses</a></li> <li><a href="#_produces_23">2.24.2. Produces</a></li> @@ -624,7 +624,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_25">2.26.3. Produces</a></li> </ul> </li> -<li><a href="#_route119">2.27. PUT /v2/policyToscaModels/{policyModelType}</a> +<li><a href="#_route88">2.27. PUT /v2/policyToscaModels/{policyModelType}</a> <ul class="sectlevel3"> <li><a href="#_parameters_21">2.27.1. Parameters</a></li> <li><a href="#_responses_27">2.27.2. Responses</a></li> @@ -632,7 +632,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <li><a href="#_produces_26">2.27.4. Produces</a></li> </ul> </li> -<li><a href="#_route122">2.28. GET /v2/templates</a> +<li><a href="#_route91">2.28. GET /v2/templates</a> <ul class="sectlevel3"> <li><a href="#_responses_28">2.28.1. Responses</a></li> <li><a href="#_produces_27">2.28.2. Produces</a></li> @@ -692,7 +692,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <div class="sect2"> <h3 id="_uri_scheme"><a class="anchor" href="#_uri_scheme"></a><a class="link" href="#_uri_scheme">1.2. URI scheme</a></h3> <div class="paragraph"> -<p><em>Host</em> : localhost:32977<br> +<p><em>Host</em> : localhost:33631<br> <em>BasePath</em> : /restservices/clds/<br> <em>Schemes</em> : HTTP</p> </div> @@ -703,7 +703,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <h2 id="_paths"><a class="anchor" href="#_paths"></a><a class="link" href="#_paths">2. Paths</a></h2> <div class="sectionbody"> <div class="sect2"> -<h3 id="_route123"><a class="anchor" href="#_route123"></a><a class="link" href="#_route123">2.1. GET /v1/healthcheck</a></h3> +<h3 id="_route92"><a class="anchor" href="#_route92"></a><a class="link" href="#_route92">2.1. GET /v1/healthcheck</a></h3> <div class="sect3"> <h4 id="_responses"><a class="anchor" href="#_responses"></a><a class="link" href="#_responses">2.1.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -740,7 +740,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route124"><a class="anchor" href="#_route124"></a><a class="link" href="#_route124">2.2. GET /v1/user/getUser</a></h3> +<h3 id="_route93"><a class="anchor" href="#_route93"></a><a class="link" href="#_route93">2.2. GET /v1/user/getUser</a></h3> <div class="sect3"> <h4 id="_responses_2"><a class="anchor" href="#_responses_2"></a><a class="link" href="#_responses_2">2.2.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -774,7 +774,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route111"><a class="anchor" href="#_route111"></a><a class="link" href="#_route111">2.3. GET /v2/dictionary</a></h3> +<h3 id="_route80"><a class="anchor" href="#_route80"></a><a class="link" href="#_route80">2.3. GET /v2/dictionary</a></h3> <div class="sect3"> <h4 id="_responses_3"><a class="anchor" href="#_responses_3"></a><a class="link" href="#_responses_3">2.3.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -811,7 +811,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route113"><a class="anchor" href="#_route113"></a><a class="link" href="#_route113">2.4. PUT /v2/dictionary</a></h3> +<h3 id="_route82"><a class="anchor" href="#_route82"></a><a class="link" href="#_route82">2.4. PUT /v2/dictionary</a></h3> <div class="sect3"> <h4 id="_parameters"><a class="anchor" href="#_parameters"></a><a class="link" href="#_parameters">2.4.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1060,7 +1060,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route115"><a class="anchor" href="#_route115"></a><a class="link" href="#_route115">2.8. DELETE /v2/dictionary/{name}</a></h3> +<h3 id="_route84"><a class="anchor" href="#_route84"></a><a class="link" href="#_route84">2.8. DELETE /v2/dictionary/{name}</a></h3> <div class="sect3"> <h4 id="_parameters_4"><a class="anchor" href="#_parameters_4"></a><a class="link" href="#_parameters_4">2.8.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1184,7 +1184,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route107"><a class="anchor" href="#_route107"></a><a class="link" href="#_route107">2.10. PUT /v2/loop/delete/{loopName}</a></h3> +<h3 id="_route76"><a class="anchor" href="#_route76"></a><a class="link" href="#_route76">2.10. PUT /v2/loop/delete/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_6"><a class="anchor" href="#_parameters_6"></a><a class="link" href="#_parameters_6">2.10.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1233,7 +1233,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route101"><a class="anchor" href="#_route101"></a><a class="link" href="#_route101">2.11. PUT /v2/loop/deploy/{loopName}</a></h3> +<h3 id="_route70"><a class="anchor" href="#_route70"></a><a class="link" href="#_route70">2.11. PUT /v2/loop/deploy/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_7"><a class="anchor" href="#_parameters_7"></a><a class="link" href="#_parameters_7">2.11.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1295,7 +1295,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route95"><a class="anchor" href="#_route95"></a><a class="link" href="#_route95">2.12. GET /v2/loop/getAllNames</a></h3> +<h3 id="_route64"><a class="anchor" href="#_route64"></a><a class="link" href="#_route64">2.12. GET /v2/loop/getAllNames</a></h3> <div class="sect3"> <h4 id="_responses_12"><a class="anchor" href="#_responses_12"></a><a class="link" href="#_responses_12">2.12.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1332,7 +1332,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route108"><a class="anchor" href="#_route108"></a><a class="link" href="#_route108">2.13. GET /v2/loop/getstatus/{loopName}</a></h3> +<h3 id="_route77"><a class="anchor" href="#_route77"></a><a class="link" href="#_route77">2.13. GET /v2/loop/getstatus/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_8"><a class="anchor" href="#_parameters_8"></a><a class="link" href="#_parameters_8">2.13.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1394,7 +1394,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route102"><a class="anchor" href="#_route102"></a><a class="link" href="#_route102">2.14. PUT /v2/loop/refreshOpPolicyJsonSchema/{loopName}</a></h3> +<h3 id="_route71"><a class="anchor" href="#_route71"></a><a class="link" href="#_route71">2.14. PUT /v2/loop/refreshOpPolicyJsonSchema/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_9"><a class="anchor" href="#_parameters_9"></a><a class="link" href="#_parameters_9">2.14.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1456,7 +1456,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route105"><a class="anchor" href="#_route105"></a><a class="link" href="#_route105">2.15. PUT /v2/loop/restart/{loopName}</a></h3> +<h3 id="_route74"><a class="anchor" href="#_route74"></a><a class="link" href="#_route74">2.15. PUT /v2/loop/restart/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_10"><a class="anchor" href="#_parameters_10"></a><a class="link" href="#_parameters_10">2.15.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1518,7 +1518,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route104"><a class="anchor" href="#_route104"></a><a class="link" href="#_route104">2.16. PUT /v2/loop/stop/{loopName}</a></h3> +<h3 id="_route73"><a class="anchor" href="#_route73"></a><a class="link" href="#_route73">2.16. PUT /v2/loop/stop/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_11"><a class="anchor" href="#_parameters_11"></a><a class="link" href="#_parameters_11">2.16.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1580,7 +1580,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route106"><a class="anchor" href="#_route106"></a><a class="link" href="#_route106">2.17. PUT /v2/loop/submit/{loopName}</a></h3> +<h3 id="_route75"><a class="anchor" href="#_route75"></a><a class="link" href="#_route75">2.17. PUT /v2/loop/submit/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_12"><a class="anchor" href="#_parameters_12"></a><a class="link" href="#_parameters_12">2.17.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1642,7 +1642,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route97"><a class="anchor" href="#_route97"></a><a class="link" href="#_route97">2.18. GET /v2/loop/svgRepresentation/{loopName}</a></h3> +<h3 id="_route66"><a class="anchor" href="#_route66"></a><a class="link" href="#_route66">2.18. GET /v2/loop/svgRepresentation/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_13"><a class="anchor" href="#_parameters_13"></a><a class="link" href="#_parameters_13">2.18.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1704,7 +1704,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route103"><a class="anchor" href="#_route103"></a><a class="link" href="#_route103">2.19. PUT /v2/loop/undeploy/{loopName}</a></h3> +<h3 id="_route72"><a class="anchor" href="#_route72"></a><a class="link" href="#_route72">2.19. PUT /v2/loop/undeploy/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_14"><a class="anchor" href="#_parameters_14"></a><a class="link" href="#_parameters_14">2.19.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1766,7 +1766,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route98"><a class="anchor" href="#_route98"></a><a class="link" href="#_route98">2.20. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3> +<h3 id="_route67"><a class="anchor" href="#_route67"></a><a class="link" href="#_route67">2.20. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_15"><a class="anchor" href="#_parameters_15"></a><a class="link" href="#_parameters_15">2.20.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1844,7 +1844,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route100"><a class="anchor" href="#_route100"></a><a class="link" href="#_route100">2.21. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3> +<h3 id="_route69"><a class="anchor" href="#_route69"></a><a class="link" href="#_route69">2.21. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_16"><a class="anchor" href="#_parameters_16"></a><a class="link" href="#_parameters_16">2.21.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -1922,7 +1922,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route99"><a class="anchor" href="#_route99"></a><a class="link" href="#_route99">2.22. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3> +<h3 id="_route68"><a class="anchor" href="#_route68"></a><a class="link" href="#_route68">2.22. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_17"><a class="anchor" href="#_parameters_17"></a><a class="link" href="#_parameters_17">2.22.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2000,7 +2000,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route96"><a class="anchor" href="#_route96"></a><a class="link" href="#_route96">2.23. GET /v2/loop/{loopName}</a></h3> +<h3 id="_route65"><a class="anchor" href="#_route65"></a><a class="link" href="#_route65">2.23. GET /v2/loop/{loopName}</a></h3> <div class="sect3"> <h4 id="_parameters_18"><a class="anchor" href="#_parameters_18"></a><a class="link" href="#_parameters_18">2.23.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2062,7 +2062,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route118"><a class="anchor" href="#_route118"></a><a class="link" href="#_route118">2.24. GET /v2/policyToscaModels</a></h3> +<h3 id="_route87"><a class="anchor" href="#_route87"></a><a class="link" href="#_route87">2.24. GET /v2/policyToscaModels</a></h3> <div class="sect3"> <h4 id="_responses_24"><a class="anchor" href="#_responses_24"></a><a class="link" href="#_responses_24">2.24.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2223,7 +2223,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route119"><a class="anchor" href="#_route119"></a><a class="link" href="#_route119">2.27. PUT /v2/policyToscaModels/{policyModelType}</a></h3> +<h3 id="_route88"><a class="anchor" href="#_route88"></a><a class="link" href="#_route88">2.27. PUT /v2/policyToscaModels/{policyModelType}</a></h3> <div class="sect3"> <h4 id="_parameters_21"><a class="anchor" href="#_parameters_21"></a><a class="link" href="#_parameters_21">2.27.1. Parameters</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -2301,7 +2301,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </div> <div class="sect2"> -<h3 id="_route122"><a class="anchor" href="#_route122"></a><a class="link" href="#_route122">2.28. GET /v2/templates</a></h3> +<h3 id="_route91"><a class="anchor" href="#_route91"></a><a class="link" href="#_route91">2.28. GET /v2/templates</a></h3> <div class="sect3"> <h4 id="_responses_28"><a class="anchor" href="#_responses_28"></a><a class="link" href="#_responses_28">2.28.1. Responses</a></h4> <table class="tableblock frame-all grid-all stretch"> @@ -3758,7 +3758,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> <div id="footer"> <div id="footer-text"> -Last updated 2020-02-12 02:20:53 PST +Last updated 2019-05-27 14:30:20 CEST </div> </div> </body> diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml index c28e4543..ce37fe1d 100644 --- a/src/main/resources/clds/camel/routes/policy-flows.xml +++ b/src/main/resources/clds/camel/routes/policy-flows.xml @@ -175,7 +175,7 @@ message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}"></log> <toD uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> - <convertBodyTo type="java.lang.String"/> + <convertBodyTo type="java.lang.String"/> <doFinally> <to uri="direct:reset-raise-http-exception-flag"/> <to @@ -584,4 +584,38 @@ </doFinally> </doTry> </route> + <route id="get-all-pdp-groups"> + <from uri="direct:get-all-pdp-groups"/> + <doTry> + <log loggingLevel="INFO" + message="Getting the list of PDP Groups"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the PDP Group list')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/pap/v1/pdps?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <convertBodyTo type="java.lang.String" /> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + </doFinally> + </doTry> + </route> </routes>
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java index 15264871..5eca90c7 100644 --- a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java @@ -46,6 +46,7 @@ import org.onap.clamp.policy.operational.OperationalPolicy; import org.onap.clamp.policy.operational.OperationalPolicyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.annotation.Commit; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @@ -148,6 +149,7 @@ public class LoopServiceTestItCase { @Test @Transactional + //@Commit public void shouldCreateNewMicroservicePolicyAndUpdateJsonRepresentationOfOldOne() { // given saveTestLoopToDb(); diff --git a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java index abeecd1b..f8aadbad 100644 --- a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java +++ b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java @@ -25,6 +25,7 @@ package org.onap.clamp.loop; import static org.assertj.core.api.Assertions.assertThat; +import java.util.LinkedList; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; @@ -33,14 +34,20 @@ import javax.transaction.Transactional; import org.junit.Test; import org.junit.runner.RunWith; import org.onap.clamp.clds.Application; +import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.loop.template.PolicyModel; import org.onap.clamp.loop.template.PolicyModelId; import org.onap.clamp.loop.template.PolicyModelsRepository; import org.onap.clamp.loop.template.PolicyModelsService; +import org.onap.clamp.policy.pdpgroup.PdpGroup; +import org.onap.clamp.policy.pdpgroup.PdpSubgroup; +import org.onap.clamp.policy.pdpgroup.PolicyModelKey; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; +import com.google.gson.JsonObject; + @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) public class PolicyModelServiceItCase { @@ -167,4 +174,71 @@ public class PolicyModelServiceItCase { assertThat(listToCheck.get(1)).isEqualByComparingTo(policyModel1); assertThat(listToCheck.get(2)).isEqualByComparingTo(policyModel3); } + + @Test + @Transactional + public void shouldAddPdpGroupInfo() { + PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", POLICY_MODEL_TYPE_1_VERSION_1, "TEST", + "VARIANT", "user"); + policyModelsService.saveOrUpdatePolicyModel(policyModel1); + PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST", + "VARIANT", "user"); + policyModelsService.saveOrUpdatePolicyModel(policyModel2); + PolicyModel policyModel3 = getPolicyModel(POLICY_MODEL_TYPE_3, "yaml", POLICY_MODEL_TYPE_3_VERSION_1, "TEST", + "VARIANT", "user"); + policyModelsService.saveOrUpdatePolicyModel(policyModel3); + + + PolicyModelKey type1 = new PolicyModelKey("org.onap.testos", "1.0.0"); + PolicyModelKey type2 = new PolicyModelKey("org.onap.testos2", "2.0.0"); + + PdpSubgroup pdpSubgroup1 = new PdpSubgroup(); + pdpSubgroup1.setPdpType("subGroup1"); + List<PolicyModelKey> pdpTypeList = new LinkedList<PolicyModelKey>(); + pdpTypeList.add(type1); + pdpTypeList.add(type2); + pdpSubgroup1.setSupportedPolicyTypes(pdpTypeList); + + PolicyModelKey type3 = new PolicyModelKey("org.onap.testos3", "2.0.0"); + PdpSubgroup pdpSubgroup2 = new PdpSubgroup(); + pdpSubgroup2.setPdpType("subGroup2"); + List<PolicyModelKey> pdpTypeList2 = new LinkedList<PolicyModelKey>(); + pdpTypeList2.add(type2); + pdpTypeList2.add(type3); + pdpSubgroup2.setSupportedPolicyTypes(pdpTypeList2); + + List<PdpSubgroup> pdpSubgroupList = new LinkedList<PdpSubgroup>(); + pdpSubgroupList.add(pdpSubgroup1); + + PdpGroup pdpGroup1 = new PdpGroup(); + pdpGroup1.setName("pdpGroup1"); + pdpGroup1.setPdpGroupState("ACTIVE"); + pdpGroup1.setPdpSubgroups(pdpSubgroupList); + + List<PdpSubgroup> pdpSubgroupList2 = new LinkedList<PdpSubgroup>(); + pdpSubgroupList2.add(pdpSubgroup1); + pdpSubgroupList2.add(pdpSubgroup2); + PdpGroup pdpGroup2 = new PdpGroup(); + pdpGroup2.setName("pdpGroup2"); + pdpGroup2.setPdpGroupState("ACTIVE"); + pdpGroup2.setPdpSubgroups(pdpSubgroupList2); + + List<PdpGroup> pdpGroupList = new LinkedList<PdpGroup>(); + pdpGroupList.add(pdpGroup1); + pdpGroupList.add(pdpGroup2); + policyModelsService.updatePdpGroupInfo(pdpGroupList); + + JsonObject res1 = policyModelsService.getPolicyModel("org.onap.testos", "1.0.0").getPolicyPdpGroup(); + String expectedRes1 = "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},{\"pdpGroup2\":[\"subGroup1\"]}]}"; + JsonObject expectedJson1 = JsonUtils.GSON.fromJson(expectedRes1, JsonObject.class); + assertThat(res1).isEqualTo(expectedJson1); + + JsonObject res2 = policyModelsService.getPolicyModel("org.onap.testos2", "2.0.0").getPolicyPdpGroup(); + String expectedRes2 = "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},{\"pdpGroup2\":[\"subGroup1\",\"subGroup2\"]}]}"; + JsonObject expectedJson2 = JsonUtils.GSON.fromJson(expectedRes2, JsonObject.class); + assertThat(res2).isEqualTo(expectedJson2); + + JsonObject res3 = policyModelsService.getPolicyModel("org.onap.testos3", "1.0.0").getPolicyPdpGroup(); + assertThat(res3).isNull(); + } } diff --git a/src/test/java/org/onap/clamp/policy/downloader/PolicyEngineControllerTestItCase.java b/src/test/java/org/onap/clamp/policy/downloader/PolicyEngineControllerTestItCase.java index b42e1536..3f502ff7 100644 --- a/src/test/java/org/onap/clamp/policy/downloader/PolicyEngineControllerTestItCase.java +++ b/src/test/java/org/onap/clamp/policy/downloader/PolicyEngineControllerTestItCase.java @@ -24,15 +24,19 @@ package org.onap.clamp.policy.downloader; import static org.assertj.core.api.Assertions.assertThat; +import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; import java.io.IOException; import java.time.Instant; import java.util.List; import javax.transaction.Transactional; +import org.json.simple.parser.ParseException; import org.junit.Test; import org.junit.runner.RunWith; import org.onap.clamp.clds.Application; +import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.loop.template.PolicyModel; +import org.onap.clamp.loop.template.PolicyModelId; import org.onap.clamp.loop.template.PolicyModelsRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -76,4 +80,30 @@ public class PolicyEngineControllerTestItCase { assertThat(firstExecution).isBefore(secondExecution); } + @Test + @Transactional + public void downloadPdpGroupsTest() throws JsonSyntaxException, IOException, InterruptedException, ParseException { + PolicyModel policyModel1 = new PolicyModel("onap.policies.monitoring.test", null, "1.0.0"); + policyModelsRepository.saveAndFlush(policyModel1); + PolicyModel policyModel2 = new PolicyModel("onap.policies.controlloop.Operational", null, "1.0.0"); + policyModelsRepository.saveAndFlush(policyModel2); + + policyController.downloadPdpGroups(); + + List<PolicyModel> policyModelsList = policyModelsRepository.findAll(); + assertThat(policyModelsList.size()).isGreaterThanOrEqualTo(2); + + PolicyModel policy1 = policyModelsRepository + .getOne(new PolicyModelId("onap.policies.monitoring.test", "1.0.0")); + PolicyModel policy2 = policyModelsRepository + .getOne(new PolicyModelId("onap.policies.controlloop.Operational", "1.0.0")); + + String expectedRes1 = "{\"supportedPdpGroups\":[{\"monitoring\":[\"xacml\"]}]}"; + JsonObject expectedJson1 = JsonUtils.GSON.fromJson(expectedRes1, JsonObject.class); + assertThat(policy1.getPolicyPdpGroup()).isEqualTo(expectedJson1); + String expectedRes2 = "{\"supportedPdpGroups\":[{\"controlloop\":[\"apex\",\"drools\"]}]}"; + JsonObject expectedJson2 = JsonUtils.GSON.fromJson(expectedRes2, JsonObject.class); + assertThat(policy2.getPolicyPdpGroup()).isEqualTo(expectedJson2); + + } } diff --git a/src/test/java/org/onap/clamp/policy/pdpgroup/PdpGroupTest.java b/src/test/java/org/onap/clamp/policy/pdpgroup/PdpGroupTest.java new file mode 100644 index 00000000..b6f7c549 --- /dev/null +++ b/src/test/java/org/onap/clamp/policy/pdpgroup/PdpGroupTest.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.policy.pdpgroup; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; + +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + +import org.junit.Test; + +public class PdpGroupTest { + + + @Test + public void testGetSupportedSubgroups() throws IOException { + PdpGroup pdpGroup1 = new PdpGroup(); + pdpGroup1.setName("pdpGroup1"); + pdpGroup1.setPdpGroupState("INACTIVE"); + assertThat(pdpGroup1.getSupportedSubgroups("test", "1.0.0")).isNull(); + + PdpGroup pdpGroup2 = new PdpGroup(); + pdpGroup2.setName("pdpGroup2"); + pdpGroup2.setPdpGroupState("ACTIVE"); + + PolicyModelKey type1 = new PolicyModelKey("type1", "1.0.0"); + PolicyModelKey type2 = new PolicyModelKey("type2", "2.0.0"); + + PdpSubgroup pdpSubgroup1 = new PdpSubgroup(); + pdpSubgroup1.setPdpType("subGroup1"); + List<PolicyModelKey> pdpTypeList = new LinkedList<PolicyModelKey>(); + pdpTypeList.add(type1); + pdpTypeList.add(type2); + pdpSubgroup1.setSupportedPolicyTypes(pdpTypeList); + + PolicyModelKey type3 = new PolicyModelKey("type3", "1.0.0"); + PdpSubgroup pdpSubgroup2 = new PdpSubgroup(); + pdpSubgroup2.setPdpType("subGroup2"); + List<PolicyModelKey> pdpTypeList2 = new LinkedList<PolicyModelKey>(); + pdpTypeList2.add(type2); + pdpTypeList2.add(type3); + pdpSubgroup2.setSupportedPolicyTypes(pdpTypeList2); + + List<PdpSubgroup> pdpSubgroupList = new LinkedList<PdpSubgroup>(); + pdpSubgroupList.add(pdpSubgroup1); + pdpSubgroupList.add(pdpSubgroup2); + pdpGroup2.setPdpSubgroups(pdpSubgroupList); + + JsonObject res1 = pdpGroup2.getSupportedSubgroups("type2", "2.0.0"); + assertThat(res1.get("pdpGroup2")).isNotNull(); + JsonArray resSubList = res1.getAsJsonArray("pdpGroup2"); + assertThat(resSubList.size()).isEqualTo(2); + assertThat(resSubList.toString().contains("subGroup1")).isTrue(); + assertThat(resSubList.toString().contains("subGroup2")).isTrue(); + + JsonObject res2 = pdpGroup2.getSupportedSubgroups("type1", "1.0.0"); + assertThat(res2.get("pdpGroup2")).isNotNull(); + JsonArray resSubList2 = res2.getAsJsonArray("pdpGroup2"); + assertThat(resSubList2.size()).isEqualTo(1); + + assertThat(pdpGroup2.getSupportedSubgroups("type3", "1.0.1")).isNull(); + } +} diff --git a/src/test/resources/http-cache/example/policy/pap/v1/pdps?connectionTimeToLive=5000/.file b/src/test/resources/http-cache/example/policy/pap/v1/pdps?connectionTimeToLive=5000/.file new file mode 100644 index 00000000..6b6b372c --- /dev/null +++ b/src/test/resources/http-cache/example/policy/pap/v1/pdps?connectionTimeToLive=5000/.file @@ -0,0 +1,76 @@ +{ + "groups": [ + { + "description": "This group should be used for managing all control loop related policies and pdps", + "name": "controlloop", + "pdpGroupState": "ACTIVE", + "pdpSubgroups": [ + { + "currentInstanceCount": 0, + "desiredInstanceCount": 1, + "pdpInstances": [], + "pdpType": "apex", + "policies": [], + "properties": {}, + "supportedPolicyTypes": [ + { + "name": "onap.policies.controlloop.Operational", + "version": "1.0.0" + } + ] + }, + { + "currentInstanceCount": 0, + "desiredInstanceCount": 1, + "pdpInstances": [], + "pdpType": "drools", + "policies": [], + "properties": {}, + "supportedPolicyTypes": [ + { + "name": "onap.policies.controlloop.Operational", + "version": "1.0.0" + } + ] + }, + { + "currentInstanceCount": 0, + "desiredInstanceCount": 1, + "pdpInstances": [], + "pdpType": "xacml", + "policies": [], + "properties": {}, + "supportedPolicyTypes": [ + { + "name": "onap.policies.controlloop.Guard", + "version": "1.0.0" + } + ] + } + ], + "properties": {} + }, + { + "description": "This group should be used for managing all monitoring related policies and pdps", + "name": "monitoring", + "pdpGroupState": "ACTIVE", + "pdpSubgroups": [ + { + "currentInstanceCount": 0, + "desiredInstanceCount": 1, + "pdpInstances": [], + "pdpType": "xacml", + "policies": [], + "properties": {}, + "supportedPolicyTypes": [ + { + "name": "onap.policies.monitoring.*", + "version": "1.0.0" + } + ] + } + ], + "properties": {} + } + ] +} diff --git a/src/test/resources/http-cache/example/policy/pap/v1/pdps?connectionTimeToLive=5000/.header b/src/test/resources/http-cache/example/policy/pap/v1/pdps?connectionTimeToLive=5000/.header new file mode 100644 index 00000000..6a280d97 --- /dev/null +++ b/src/test/resources/http-cache/example/policy/pap/v1/pdps?connectionTimeToLive=5000/.header @@ -0,0 +1 @@ +{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/third_party_proxy.py b/src/test/resources/http-cache/third_party_proxy.py index 32f7faf4..79e152eb 100755 --- a/src/test/resources/http-cache/third_party_proxy.py +++ b/src/test/resources/http-cache/third_party_proxy.py @@ -297,6 +297,7 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): self.send_response(404) self.end_headers() self.wfile.write('404 Not found, no remote HOST specified on the emulator !!!') + print("HOST value is: %s " % (options.proxy)) return "404 Not found, no remote HOST specified on the emulator !!!" url = '%s%s' % (HOST, self.path) @@ -315,6 +316,7 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): return response.content else: print("Request for data currently present in cache: %s" % (cached_file_folder,)) + print("HOST value is: %s " % (HOST)) self._send_content(cached_file_header, cached_file_content) |