From 8717b593407894c9f66dd09a8ad1896f2ac0dc28 Mon Sep 17 00:00:00 2001 From: Dan Wang Date: Mon, 15 Feb 2021 17:05:36 -0500 Subject: [PATCH 1/3] fix the bug compressed type of bool and fix array --- include/hobbes/boot/gen/bootdata.H | 2596 +++++++++++++++------------- lib/hobbes/boot/zstorage.hob | 36 + test/Storage.C | 14 +- 3 files changed, 1413 insertions(+), 1233 deletions(-) diff --git a/include/hobbes/boot/gen/bootdata.H b/include/hobbes/boot/gen/bootdata.H index c92cc5809..430b7a882 100644 --- a/include/hobbes/boot/gen/bootdata.H +++ b/include/hobbes/boot/gen/bootdata.H @@ -10616,942 +10616,1062 @@ unsigned char __zstorage_hob[] = { 0x53, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x20, 0x34, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x4d, 0x53, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x20, 0x38, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x20, 0x3d, - 0x20, 0x7b, 0x20, 0x70, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x3a, 0x5b, - 0x3a, 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x32, 0x35, - 0x36, 0x29, 0x7c, 0x6e, 0x3a, 0x5d, 0x20, 0x7d, 0x0a, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x6e, - 0x20, 0x3d, 0x20, 0x5b, 0x3a, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, - 0x2e, 0x44, 0x79, 0x6e, 0x44, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x30, 0x3e, - 0x7c, 0x6e, 0x3a, 0x5d, 0x0a, 0x0a, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x20, 0x73, 0x6d, 0x20, 0x64, - 0x6d, 0x20, 0x69, 0x20, 0x65, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, - 0x20, 0x28, 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x65, 0x29, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, - 0x65, 0x6c, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x64, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x28, 0x73, 0x61, - 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x64, 0x6d, 0x2c, 0x69, 0x29, 0x2c, 0x20, - 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x73, - 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x73, 0x6d, 0x2e, 0x70, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x69, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x53, 0x41, 0x28, 0x73, 0x6d, 0x2c, 0x20, 0x64, 0x6d, 0x2c, - 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x7d, 0x0a, 0x7b, 0x2d, 0x23, 0x20, 0x55, 0x4e, 0x53, 0x41, 0x46, - 0x45, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x53, 0x41, 0x20, 0x23, 0x2d, 0x7d, 0x0a, 0x0a, 0x75, 0x63, 0x44, - 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, - 0x41, 0x20, 0x64, 0x6d, 0x20, 0x69, 0x20, 0x65, 0x20, 0x3d, 0x0a, 0x20, + 0x62, 0x6c, 0x65, 0x20, 0x38, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x55, 0x43, 0x4d, 0x53, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x62, 0x6f, 0x6f, 0x6c, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x0a, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, + 0x6e, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x70, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x3a, 0x5b, 0x3a, 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x32, 0x35, 0x36, 0x29, 0x7c, 0x6e, 0x3a, 0x5d, 0x20, 0x7d, 0x0a, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x5b, 0x3a, 0x3c, 0x68, 0x6f, 0x62, + 0x62, 0x65, 0x73, 0x2e, 0x44, 0x79, 0x6e, 0x44, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x30, 0x3e, 0x7c, 0x6e, 0x3a, 0x5d, 0x0a, 0x0a, 0x75, 0x63, 0x50, + 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x69, 0x20, 0x65, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x65, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x64, 0x6d, 0x44, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x28, 0x73, 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x64, - 0x6d, 0x2c, 0x69, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, - 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x53, 0x41, 0x28, 0x64, 0x6d, 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, - 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7b, 0x2d, - 0x23, 0x20, 0x55, 0x4e, 0x53, 0x41, 0x46, 0x45, 0x20, 0x75, 0x63, 0x44, - 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, - 0x41, 0x20, 0x23, 0x2d, 0x7d, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x53, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x20, 0x6e, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x28, 0x70, 0x63, 0x73, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, 0x28, 0x70, 0x64, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x5b, 0x64, 0x64, 0x6d, 0x4d, 0x61, - 0x6b, 0x65, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, - 0x74, 0x28, 0x66, 0x29, 0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x30, 0x58, 0x66, 0x66, 0x29, 0x20, 0x7c, 0x20, 0x5f, 0x20, 0x3c, - 0x2d, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x69, 0x6d, 0x28, 0x29, 0x3a, - 0x3a, 0x5b, 0x3a, 0x69, 0x6e, 0x74, 0x7c, 0x6e, 0x3a, 0x5d, 0x5d, 0x0a, - 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x20, - 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x53, 0x41, 0x28, 0x73, 0x6d, 0x2c, 0x20, 0x64, 0x6d, 0x2c, - 0x20, 0x30, 0x4c, 0x2c, 0x20, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, - 0x6e, 0x67, 0x3a, 0x3a, 0x28, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, - 0x6e, 0x67, 0x20, 0x6e, 0x29, 0x3d, 0x3e, 0x6c, 0x6f, 0x6e, 0x67, 0x29, - 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x28, 0x64, 0x6d, 0x2c, - 0x20, 0x30, 0x4c, 0x2c, 0x20, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, - 0x6e, 0x67, 0x3a, 0x3a, 0x28, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, - 0x6e, 0x67, 0x20, 0x6e, 0x29, 0x3d, 0x3e, 0x6c, 0x6f, 0x6e, 0x67, 0x29, - 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x55, 0x43, 0x4d, 0x53, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x20, 0x6e, - 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x20, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6e, 0x29, 0x20, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6e, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, - 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, - 0x20, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, - 0x28, 0x5b, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, - 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x62, 0x79, 0x74, 0x65, 0x20, - 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x73, - 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x64, 0x6d, 0x2c, 0x69, 0x29, 0x29, - 0x20, 0x7c, 0x20, 0x69, 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x3a, 0x28, 0x46, 0x69, - 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x6e, 0x29, 0x3d, - 0x3e, 0x5b, 0x3a, 0x6c, 0x6f, 0x6e, 0x67, 0x7c, 0x6e, 0x3a, 0x5d, 0x29, - 0x5d, 0x29, 0x3a, 0x3a, 0x7b, 0x78, 0x3a, 0x74, 0x7d, 0x29, 0x2e, 0x78, - 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x55, 0x43, 0x4d, 0x53, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x20, 0x6e, - 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x20, 0x74, 0x20, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x6e, 0x29, 0x20, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x6e, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, - 0x20, 0x78, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x62, 0x73, - 0x3d, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, - 0x7b, 0x78, 0x3d, 0x78, 0x7d, 0x29, 0x3a, 0x3a, 0x5b, 0x3a, 0x62, 0x79, - 0x74, 0x65, 0x7c, 0x6e, 0x3a, 0x5d, 0x3b, 0x20, 0x5b, 0x75, 0x63, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x28, 0x77, 0x2c, 0x20, 0x73, 0x61, 0x65, 0x6c, - 0x65, 0x6d, 0x28, 0x64, 0x6d, 0x2c, 0x20, 0x69, 0x29, 0x2c, 0x20, 0x73, - 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x62, 0x73, 0x2c, 0x20, 0x69, 0x29, - 0x29, 0x20, 0x7c, 0x20, 0x69, 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x3a, 0x28, 0x46, - 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x6e, 0x29, - 0x3d, 0x3e, 0x5f, 0x29, 0x5d, 0x3b, 0x20, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x20, - 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x7c, 0x20, 0x74, 0x20, - 0x2d, 0x3e, 0x20, 0x74, 0x73, 0x6d, 0x2c, 0x20, 0x74, 0x20, 0x2d, 0x3e, - 0x20, 0x74, 0x64, 0x6d, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x28, - 0x29, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, 0x28, 0x6c, 0x2a, 0x72, - 0x29, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, - 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, - 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x20, 0x72, 0x73, 0x6d, - 0x20, 0x72, 0x64, 0x6d, 0x2c, 0x20, 0x28, 0x6c, 0x73, 0x6d, 0x2a, 0x72, - 0x73, 0x6d, 0x29, 0x3d, 0x74, 0x73, 0x6d, 0x2c, 0x20, 0x28, 0x6c, 0x64, - 0x6d, 0x2a, 0x72, 0x64, 0x6d, 0x29, 0x3d, 0x74, 0x64, 0x6d, 0x29, 0x20, - 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, - 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x0a, 0x0a, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, - 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x64, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x28, 0x73, 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x64, 0x6d, 0x2c, 0x69, + 0x29, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, + 0x74, 0x28, 0x73, 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x73, 0x6d, 0x2e, + 0x70, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x69, 0x29, 0x29, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x28, 0x73, 0x6d, 0x2c, 0x20, + 0x64, 0x6d, 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x2c, 0x20, 0x65, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7b, 0x2d, 0x23, 0x20, 0x55, 0x4e, + 0x53, 0x41, 0x46, 0x45, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x20, 0x23, 0x2d, 0x7d, 0x0a, 0x0a, + 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x53, 0x41, 0x20, 0x64, 0x6d, 0x20, 0x69, 0x20, 0x65, 0x20, + 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x20, 0x3d, 0x3d, + 0x20, 0x65, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x64, + 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x64, 0x6d, 0x44, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x73, 0x61, 0x65, 0x6c, 0x65, + 0x6d, 0x28, 0x64, 0x6d, 0x2c, 0x69, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x28, 0x64, 0x6d, 0x2c, 0x20, 0x69, + 0x2b, 0x31, 0x4c, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x7d, + 0x0a, 0x7b, 0x2d, 0x23, 0x20, 0x55, 0x4e, 0x53, 0x41, 0x46, 0x45, 0x20, + 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x53, 0x41, 0x20, 0x23, 0x2d, 0x7d, 0x0a, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x53, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x20, 0x6e, 0x29, 0x20, 0x3d, 0x3e, + 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x28, + 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, + 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x5b, 0x64, 0x64, + 0x6d, 0x4d, 0x61, 0x6b, 0x65, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, + 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x29, 0x2c, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x30, 0x58, 0x66, 0x66, 0x29, 0x20, 0x7c, 0x20, + 0x5f, 0x20, 0x3c, 0x2d, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x69, 0x6d, + 0x28, 0x29, 0x3a, 0x3a, 0x5b, 0x3a, 0x69, 0x6e, 0x74, 0x7c, 0x6e, 0x3a, + 0x5d, 0x5d, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, + 0x6d, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x28, 0x73, 0x6d, 0x2c, 0x20, + 0x64, 0x6d, 0x2c, 0x20, 0x30, 0x4c, 0x2c, 0x20, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x28, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x20, 0x6e, 0x29, 0x3d, 0x3e, 0x6c, 0x6f, + 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x41, 0x28, + 0x64, 0x6d, 0x2c, 0x20, 0x30, 0x4c, 0x2c, 0x20, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x28, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x20, 0x6e, 0x29, 0x3d, 0x3e, 0x6c, 0x6f, + 0x6e, 0x67, 0x29, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x53, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x20, 0x6e, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, + 0x61, 0x64, 0x20, 0x74, 0x20, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, + 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, + 0x6d, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, + 0x61, 0x73, 0x74, 0x28, 0x5b, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x62, 0x79, + 0x74, 0x65, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, + 0x72, 0x2c, 0x73, 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x64, 0x6d, 0x2c, + 0x69, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x69, 0x20, 0x3c, 0x2d, 0x20, 0x28, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x3a, + 0x28, 0x46, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, + 0x6e, 0x29, 0x3d, 0x3e, 0x5b, 0x3a, 0x6c, 0x6f, 0x6e, 0x67, 0x7c, 0x6e, + 0x3a, 0x5d, 0x29, 0x5d, 0x29, 0x3a, 0x3a, 0x7b, 0x78, 0x3a, 0x74, 0x7d, + 0x29, 0x2e, 0x78, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x53, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x20, 0x6e, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, 0x28, 0x70, 0x64, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, + 0x20, 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, + 0x20, 0x62, 0x73, 0x3d, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, + 0x73, 0x74, 0x28, 0x7b, 0x78, 0x3d, 0x78, 0x7d, 0x29, 0x3a, 0x3a, 0x5b, + 0x3a, 0x62, 0x79, 0x74, 0x65, 0x7c, 0x6e, 0x3a, 0x5d, 0x3b, 0x20, 0x5b, + 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x77, 0x2c, 0x20, 0x73, + 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x64, 0x6d, 0x2c, 0x20, 0x69, 0x29, + 0x2c, 0x20, 0x73, 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x62, 0x73, 0x2c, + 0x20, 0x69, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x69, 0x20, 0x3c, 0x2d, 0x20, + 0x28, 0x66, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x3a, + 0x3a, 0x28, 0x46, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x6e, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x5d, 0x3b, 0x20, 0x7d, 0x0a, + 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x0a, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, + 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x7c, + 0x20, 0x74, 0x20, 0x2d, 0x3e, 0x20, 0x74, 0x73, 0x6d, 0x2c, 0x20, 0x74, + 0x20, 0x2d, 0x3e, 0x20, 0x74, 0x64, 0x6d, 0x0a, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, + 0x65, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, 0x28, + 0x6c, 0x2a, 0x72, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x2c, + 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x20, + 0x72, 0x73, 0x6d, 0x20, 0x72, 0x64, 0x6d, 0x2c, 0x20, 0x28, 0x6c, 0x73, + 0x6d, 0x2a, 0x72, 0x73, 0x6d, 0x29, 0x3d, 0x74, 0x73, 0x6d, 0x2c, 0x20, + 0x28, 0x6c, 0x64, 0x6d, 0x2a, 0x72, 0x64, 0x6d, 0x29, 0x3d, 0x74, 0x64, + 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, + 0x6c, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, + 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, 0x4d, 0x54, + 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, + 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, + 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x3a, 0x3a, 0x20, 0x28, + 0x28, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x29, + 0x2c, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x2c, 0x20, 0x74, 0x64, 0x6d, 0x29, + 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, + 0x75, 0x70, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x74, 0x73, 0x6d, 0x2c, 0x20, + 0x74, 0x64, 0x6d, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x20, + 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x74, 0x64, + 0x6d, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, + 0x28, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x20, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x28, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x29, 0x2c, 0x20, 0x62, - 0x6f, 0x6f, 0x6c, 0x2c, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x2d, 0x3e, + 0x65, 0x6c, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x3a, 0x3a, 0x20, 0x28, 0x74, 0x73, 0x6d, 0x2c, 0x20, 0x74, 0x64, 0x6d, - 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, - 0x54, 0x75, 0x70, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x2d, - 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, - 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x20, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, 0x28, 0x29, - 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x50, 0x72, 0x65, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x5f, - 0x20, 0x20, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, - 0x54, 0x75, 0x70, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, - 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x28, 0x74, 0x3d, 0x28, 0x6c, 0x2a, 0x72, 0x29, 0x2c, 0x20, 0x74, 0x73, - 0x6d, 0x3d, 0x28, 0x6c, 0x73, 0x6d, 0x2a, 0x72, 0x73, 0x6d, 0x29, 0x2c, - 0x20, 0x74, 0x64, 0x6d, 0x3d, 0x28, 0x6c, 0x64, 0x6d, 0x2a, 0x72, 0x64, - 0x6d, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x2c, 0x20, 0x55, + 0x5f, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x20, + 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, 0x28, 0x6c, 0x2a, 0x72, 0x29, 0x2c, + 0x20, 0x74, 0x73, 0x6d, 0x3d, 0x28, 0x6c, 0x73, 0x6d, 0x2a, 0x72, 0x73, + 0x6d, 0x29, 0x2c, 0x20, 0x74, 0x64, 0x6d, 0x3d, 0x28, 0x6c, 0x64, 0x6d, + 0x2a, 0x72, 0x64, 0x6d, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, + 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x72, 0x20, 0x72, 0x73, 0x6d, 0x20, 0x72, 0x64, 0x6d, 0x29, + 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, + 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, + 0x54, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x20, 0x64, 0x6d, + 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x64, 0x6d, 0x2e, 0x30, + 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, + 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x20, 0x69, 0x6e, + 0x70, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x41, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x72, - 0x20, 0x72, 0x73, 0x6d, 0x20, 0x72, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, - 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, - 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, - 0x20, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, - 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x20, 0x3c, 0x2d, - 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x29, 0x3d, - 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x20, 0x69, 0x6e, 0x70, 0x29, 0x3b, - 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x54, - 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x72, 0x20, 0x5f, 0x20, - 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x20, 0x69, 0x6e, - 0x70, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, - 0x28, 0x64, 0x6d, 0x29, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x75, - 0x63, 0x54, 0x75, 0x70, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, - 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, - 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, - 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x20, 0x6c, 0x73, - 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x6c, 0x73, 0x6d, - 0x2c, 0x6c, 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x73, - 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3b, 0x20, - 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x72, 0x20, 0x5f, 0x20, 0x5f, 0x29, - 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, - 0x28, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x73, - 0x6d, 0x29, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, - 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x54, 0x75, 0x70, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, - 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x29, 0x3d, 0x3e, - 0x6c, 0x64, 0x6d, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x64, 0x6d, 0x2e, - 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x44, 0x65, - 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, - 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x72, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x2d, 0x3e, + 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, + 0x20, 0x69, 0x6e, 0x70, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, + 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x29, 0x3b, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, + 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, + 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, + 0x6c, 0x73, 0x6d, 0x2c, 0x6c, 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x28, 0x29, + 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, + 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x50, 0x72, 0x65, + 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, + 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x72, 0x20, 0x5f, + 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, - 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x0a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, - 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, - 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, - 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, + 0x6c, 0x28, 0x73, 0x6d, 0x29, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, + 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x29, 0x3b, 0x20, 0x7d, + 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x44, 0x65, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, + 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, + 0x29, 0x3d, 0x3e, 0x6c, 0x64, 0x6d, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, + 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, + 0x70, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x72, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, + 0x5f, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x74, 0x75, 0x70, 0x6c, 0x65, + 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x29, 0x3b, 0x20, 0x7d, + 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x20, 0x74, + 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x54, + 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, + 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, + 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, + 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x3d, + 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65, + 0x77, 0x50, 0x72, 0x69, 0x6d, 0x28, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, + 0x54, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, + 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2c, 0x72, 0x29, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x72, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, + 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, + 0x54, 0x75, 0x70, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, - 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, - 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x64, 0x6f, - 0x20, 0x7b, 0x20, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x72, - 0x69, 0x6d, 0x28, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, - 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, + 0x29, 0x3d, 0x3e, 0x28, 0x74, 0x73, 0x6d, 0x2c, 0x74, 0x64, 0x6d, 0x29, + 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x73, 0x6d, 0x2c, 0x64, 0x6d, 0x29, + 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x44, 0x65, + 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x3d, - 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2c, - 0x72, 0x29, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, - 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, - 0x6d, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, - 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, - 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, - 0x28, 0x74, 0x73, 0x6d, 0x2c, 0x74, 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x28, - 0x29, 0x29, 0x28, 0x73, 0x6d, 0x2c, 0x64, 0x6d, 0x29, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, - 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x44, 0x65, 0x61, 0x6c, 0x6c, - 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x3e, 0x74, 0x64, 0x6d, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x64, 0x6d, + 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, - 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x74, 0x64, - 0x6d, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x64, 0x6d, 0x29, 0x0a, 0x0a, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, - 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, - 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x54, + 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, + 0x55, 0x43, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, + 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, + 0x64, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, + 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, + 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x74, 0x29, 0x20, 0x2d, 0x3e, 0x20, + 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x55, 0x43, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x28, 0x29, + 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, + 0x28, 0x6c, 0x2a, 0x72, 0x29, 0x2c, 0x20, 0x74, 0x73, 0x6d, 0x3d, 0x28, + 0x6c, 0x73, 0x6d, 0x2a, 0x72, 0x73, 0x6d, 0x29, 0x2c, 0x20, 0x74, 0x64, + 0x6d, 0x3d, 0x28, 0x6c, 0x64, 0x6d, 0x2a, 0x72, 0x64, 0x6d, 0x29, 0x2c, + 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x20, 0x6c, 0x73, + 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x72, 0x73, 0x6d, 0x20, 0x72, + 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, + 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, + 0x63, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, + 0x6d, 0x20, 0x74, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x74, + 0x2e, 0x30, 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, + 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, + 0x5f, 0x2c, 0x6c, 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x6c, 0x29, 0x28, 0x72, + 0x2c, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x54, 0x75, + 0x70, 0x52, 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, 0x74, 0x75, 0x70, 0x6c, + 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x2c, 0x74, 0x75, + 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x74, 0x29, 0x29, 0x3b, + 0x20, 0x7d, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x20, + 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, - 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, - 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x3a, - 0x3a, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, - 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x74, 0x64, - 0x6d, 0x2c, 0x20, 0x74, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x54, - 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, - 0x20, 0x28, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x5f, 0x20, - 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, 0x28, 0x6c, 0x2a, - 0x72, 0x29, 0x2c, 0x20, 0x74, 0x73, 0x6d, 0x3d, 0x28, 0x6c, 0x73, 0x6d, - 0x2a, 0x72, 0x73, 0x6d, 0x29, 0x2c, 0x20, 0x74, 0x64, 0x6d, 0x3d, 0x28, - 0x6c, 0x64, 0x6d, 0x2a, 0x72, 0x64, 0x6d, 0x29, 0x2c, 0x20, 0x55, 0x43, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, - 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x72, 0x20, 0x72, 0x73, 0x6d, 0x20, 0x72, 0x64, 0x6d, 0x29, - 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, - 0x70, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x74, - 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x74, 0x2e, 0x30, 0x20, - 0x3c, 0x2d, 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, - 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x20, 0x6c, 0x73, - 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x6c, - 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x6c, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x6d, - 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x52, 0x65, - 0x61, 0x64, 0x28, 0x72, 0x2c, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, - 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x2c, 0x74, 0x75, 0x70, 0x6c, 0x65, - 0x54, 0x61, 0x69, 0x6c, 0x28, 0x74, 0x29, 0x29, 0x3b, 0x20, 0x7d, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, - 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, - 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x52, + 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, - 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, + 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, + 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x78, 0x3d, 0x6e, 0x65, 0x77, 0x50, 0x72, + 0x69, 0x6d, 0x28, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, + 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x54, 0x75, 0x70, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, + 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x74, 0x64, 0x6d, 0x2c, + 0x74, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x6d, + 0x2c, 0x78, 0x29, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x78, 0x20, 0x7d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, + 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, + 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, + 0x3e, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, - 0x7b, 0x20, 0x78, 0x3d, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x69, 0x6d, 0x28, - 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, - 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, - 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x74, 0x64, 0x6d, 0x2c, 0x74, 0x29, 0x2d, - 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x6d, 0x2c, 0x78, 0x29, - 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, 0x20, 0x7d, - 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, 0x55, 0x43, 0x4d, - 0x54, 0x75, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, - 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, - 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, - 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, - 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x3e, - 0x2c, 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x74, 0x29, 0x20, 0x2d, 0x3e, - 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, - 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, - 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x28, 0x74, 0x3d, 0x28, 0x6c, 0x2a, 0x72, 0x29, 0x2c, 0x20, 0x74, 0x73, - 0x6d, 0x3d, 0x28, 0x6c, 0x73, 0x6d, 0x2a, 0x72, 0x73, 0x6d, 0x29, 0x2c, - 0x20, 0x74, 0x64, 0x6d, 0x3d, 0x28, 0x6c, 0x64, 0x6d, 0x2a, 0x72, 0x64, - 0x6d, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, - 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x2c, 0x20, 0x55, - 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x72, 0x20, - 0x72, 0x73, 0x6d, 0x20, 0x72, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, - 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, - 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x74, 0x20, 0x3d, - 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, 0x29, 0x3d, - 0x3e, 0x28, 0x5f, 0x2c, 0x6c, 0x64, 0x6d, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, - 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x64, 0x6d, 0x2e, 0x30, 0x2c, 0x74, 0x2e, - 0x30, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x28, 0x77, 0x2c, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, - 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x2c, 0x74, 0x75, 0x70, 0x6c, 0x65, - 0x54, 0x61, 0x69, 0x6c, 0x28, 0x74, 0x29, 0x29, 0x3b, 0x20, 0x7d, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, - 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, - 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, - 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x74, 0x20, - 0x3d, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, - 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x74, 0x64, 0x6d, 0x2c, 0x74, 0x29, - 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x77, 0x2c, 0x64, 0x6d, 0x2c, 0x74, - 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x20, 0x28, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x70, 0x69, 0x67, 0x67, 0x79, - 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x75, 0x70, 0x6c, - 0x65, 0x73, 0x29, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, - 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x20, - 0x74, 0x20, 0x7c, 0x20, 0x72, 0x20, 0x2d, 0x3e, 0x20, 0x74, 0x0a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x4d, 0x52, - 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x28, 0x29, 0x20, 0x28, - 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x72, 0x3d, 0x7b, 0x68, 0x2a, 0x72, 0x74, 0x7d, 0x2c, 0x20, 0x55, 0x43, - 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x74, - 0x20, 0x74, 0x74, 0x2c, 0x20, 0x28, 0x68, 0x2a, 0x74, 0x74, 0x29, 0x3d, - 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x52, 0x65, 0x63, - 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x20, 0x74, 0x0a, 0x0a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, + 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x3c, 0x68, + 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x74, 0x29, + 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, + 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, + 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, 0x28, 0x6c, 0x2a, 0x72, 0x29, 0x2c, + 0x20, 0x74, 0x73, 0x6d, 0x3d, 0x28, 0x6c, 0x73, 0x6d, 0x2a, 0x72, 0x73, + 0x6d, 0x29, 0x2c, 0x20, 0x74, 0x64, 0x6d, 0x3d, 0x28, 0x6c, 0x64, 0x6d, + 0x2a, 0x72, 0x64, 0x6d, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, 0x6d, + 0x2c, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x20, 0x72, 0x20, 0x72, 0x73, 0x6d, 0x20, 0x72, 0x64, 0x6d, 0x29, 0x20, + 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x54, 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x54, 0x75, + 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, + 0x74, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x20, 0x6c, 0x20, 0x6c, 0x73, 0x6d, 0x20, 0x6c, 0x64, + 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x6c, 0x64, 0x6d, 0x2c, 0x5f, + 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x64, 0x6d, 0x2e, 0x30, + 0x2c, 0x74, 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x54, 0x75, 0x70, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x77, 0x2c, 0x74, 0x75, 0x70, 0x6c, + 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x2c, 0x74, 0x75, + 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x74, 0x29, 0x29, 0x3b, + 0x20, 0x7d, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x55, 0x43, 0x4d, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x20, + 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x54, + 0x75, 0x70, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, + 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, + 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, + 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, + 0x20, 0x74, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x54, 0x75, 0x70, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x54, 0x75, 0x70, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, + 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x74, 0x64, 0x6d, + 0x2c, 0x74, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x77, 0x2c, 0x64, + 0x6d, 0x2c, 0x74, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x20, 0x28, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x70, 0x69, + 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x75, 0x70, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x20, 0x55, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, + 0x20, 0x72, 0x20, 0x74, 0x20, 0x7c, 0x20, 0x72, 0x20, 0x2d, 0x3e, 0x20, + 0x74, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, + 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x28, + 0x29, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x72, 0x3d, 0x7b, 0x68, 0x2a, 0x72, 0x74, 0x7d, 0x2c, + 0x20, 0x55, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, + 0x20, 0x72, 0x74, 0x20, 0x74, 0x74, 0x2c, 0x20, 0x28, 0x68, 0x2a, 0x74, + 0x74, 0x29, 0x3d, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x20, 0x74, - 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, - 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, - 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x72, 0x20, 0x74, 0x73, - 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, - 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, - 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x3a, 0x3a, 0x28, - 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, - 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x3a, 0x3a, 0x28, 0x55, 0x43, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, - 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, - 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x3d, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, - 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, - 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, - 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x72, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x75, 0x6e, - 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x28, 0x75, 0x63, - 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, - 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, - 0x72, 0x2c, 0x64, 0x6d, 0x29, 0x29, 0x3a, 0x3a, 0x72, 0x0a, 0x69, 0x6e, + 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x55, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, + 0x72, 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, + 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x72, + 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, + 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, + 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, + 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, + 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x3a, 0x3a, + 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, + 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, + 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, + 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, + 0x20, 0x74, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x20, 0x74, 0x2c, - 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x74, + 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, + 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, + 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, + 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, + 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, + 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, + 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, + 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x6d, 0x29, 0x29, 0x3a, 0x3a, 0x72, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, + 0x43, 0x4d, 0x52, 0x65, 0x63, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x72, + 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, + 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, + 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x72, 0x20, + 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, + 0x77, 0x20, 0x64, 0x6d, 0x20, 0x72, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, + 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x72, + 0x29, 0x3a, 0x3a, 0x74, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x73, 0x20, 0x28, 0x61, 0x73, 0x20, 0x69, 0x66, 0x20, 0x61, + 0x20, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, + 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, + 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x5b, 0x74, + 0x5d, 0x20, 0x28, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x73, 0x6d, 0x29, 0x20, 0x28, + 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, + 0x2a, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, + 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x29, 0x2c, 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, + 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x29, + 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, + 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, + 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, + 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x30, 0x2c, 0x20, + 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, + 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, + 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, + 0x73, 0x6d, 0x2e, 0x31, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, + 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, + 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, + 0x5f, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3b, + 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, + 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, 0x20, + 0x7d, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, - 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x72, 0x20, 0x74, 0x73, 0x6d, - 0x20, 0x74, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, - 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, - 0x6d, 0x20, 0x72, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x72, 0x29, 0x3a, 0x3a, - 0x74, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x73, - 0x20, 0x28, 0x61, 0x73, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, - 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x5b, 0x3a, 0x74, 0x7c, 0x6e, + 0x3a, 0x5d, 0x20, 0x28, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x73, 0x6d, 0x29, 0x20, + 0x28, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, + 0x20, 0x2a, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, + 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, + 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x29, 0x2c, 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, + 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, + 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x29, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, + 0x6d, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, + 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, + 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, + 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, + 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x30, 0x2c, + 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x50, + 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, + 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, + 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, + 0x28, 0x73, 0x6d, 0x2e, 0x31, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, 0x29, + 0x3b, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, + 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, + 0x3e, 0x5f, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x2e, 0x30, 0x29, + 0x3b, 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, + 0x5f, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, + 0x20, 0x7d, 0x0a, 0x0a, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, + 0x74, 0x65, 0x70, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, + 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, + 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, + 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, + 0x6d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x2c, 0x20, 0x5b, 0x74, 0x5d, + 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, + 0x74, 0x5d, 0x0a, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, + 0x65, 0x70, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x78, 0x20, + 0x69, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x63, + 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x4f, 0x46, 0x28, 0x72, 0x29, + 0x20, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x29, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x20, + 0x7b, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 0x74, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x2c, 0x20, 0x69, 0x29, 0x3b, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x3a, 0x3a, + 0x5b, 0x74, 0x5d, 0x29, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x5b, 0x69, 0x5d, 0x20, 0x3c, 0x2d, + 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, 0x20, 0x64, + 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, + 0x53, 0x74, 0x65, 0x70, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, + 0x6e, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7b, 0x2d, 0x23, 0x20, 0x55, 0x4e, + 0x53, 0x41, 0x46, 0x45, 0x20, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, + 0x53, 0x74, 0x65, 0x70, 0x20, 0x23, 0x2d, 0x7d, 0x0a, 0x0a, 0x75, 0x63, + 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, + 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, + 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, + 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, + 0x4e, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x75, + 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x28, 0x72, + 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6e, 0x2c, 0x20, 0x6e, 0x65, 0x77, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6e, 0x29, 0x2c, 0x20, 0x30, 0x4c, + 0x29, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, - 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x5b, 0x74, 0x5d, 0x20, 0x28, + 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, 0x5d, 0x20, 0x28, 0x28, + 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, + 0x2a, 0x20, 0x74, 0x73, 0x6d, 0x29, 0x20, 0x28, 0x28, 0x70, 0x64, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x64, + 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, + 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, + 0x20, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x28, 0x72, 0x2c, 0x20, + 0x64, 0x6d, 0x2e, 0x31, 0x2c, 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, + 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, + 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, + 0x6d, 0x2e, 0x30, 0x29, 0x29, 0x0a, 0x0a, 0x75, 0x63, 0x46, 0x54, 0x61, + 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x20, 0x3a, 0x3a, 0x20, 0x28, + 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, + 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, + 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x2c, + 0x20, 0x5b, 0x3a, 0x74, 0x7c, 0x6e, 0x3a, 0x5d, 0x2c, 0x20, 0x6c, 0x6f, + 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, 0x3a, 0x74, 0x7c, 0x6e, + 0x3a, 0x5d, 0x0a, 0x75, 0x63, 0x46, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, + 0x74, 0x65, 0x70, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x78, + 0x20, 0x69, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, + 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x4f, 0x46, 0x28, 0x72, + 0x29, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x29, + 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x0a, + 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x61, + 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x78, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x3c, + 0x2d, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, + 0x20, 0x64, 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x63, 0x46, 0x54, 0x61, + 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x28, 0x72, 0x2c, 0x20, 0x64, + 0x6d, 0x2c, 0x20, 0x6e, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x69, 0x2b, 0x31, + 0x4c, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x75, 0x63, + 0x46, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, + 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, + 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, + 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, + 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, + 0x2d, 0x3e, 0x20, 0x5b, 0x3a, 0x74, 0x7c, 0x6e, 0x3a, 0x5d, 0x0a, 0x75, + 0x63, 0x46, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, 0x72, 0x20, 0x64, 0x6d, + 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x46, 0x54, 0x61, 0x6b, 0x65, + 0x4e, 0x53, 0x74, 0x65, 0x70, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, + 0x20, 0x6e, 0x2c, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x69, 0x6d, 0x28, + 0x29, 0x3a, 0x3a, 0x5b, 0x3a, 0x74, 0x7c, 0x6e, 0x3a, 0x5d, 0x2c, 0x20, + 0x30, 0x4c, 0x29, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, + 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, + 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x3a, 0x74, 0x7c, + 0x6e, 0x3a, 0x5d, 0x20, 0x28, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x73, 0x6d, 0x29, + 0x20, 0x28, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, + 0x29, 0x20, 0x2a, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, + 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x46, 0x54, 0x61, + 0x6b, 0x65, 0x4e, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, 0x2c, + 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, + 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, + 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, + 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x29, + 0x0a, 0x0a, 0x75, 0x63, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x3a, 0x3a, 0x20, + 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, + 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x5b, 0x74, 0x5d, + 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, + 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x75, 0x63, 0x50, 0x75, + 0x74, 0x4e, 0x20, 0x77, 0x20, 0x6d, 0x20, 0x78, 0x73, 0x20, 0x69, 0x20, + 0x65, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x20, + 0x3d, 0x3d, 0x20, 0x65, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x75, + 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, + 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x6d, 0x2c, 0x20, 0x78, 0x73, 0x5b, + 0x69, 0x5d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, 0x50, + 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x6d, 0x2c, 0x20, 0x78, 0x73, + 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x7d, 0x0a, 0x7b, 0x2d, 0x23, 0x20, 0x55, 0x4e, 0x53, 0x41, + 0x46, 0x45, 0x20, 0x75, 0x63, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x23, 0x2d, + 0x7d, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, + 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, + 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x5b, 0x74, 0x5d, 0x20, 0x28, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x73, 0x6d, 0x29, 0x20, 0x28, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x3d, - 0x20, 0x28, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, - 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x29, - 0x2c, 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, - 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x29, 0x29, 0x0a, 0x20, - 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, - 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, - 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, - 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, - 0x5f, 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x64, 0x6d, 0x2e, - 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, - 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x73, 0x6d, 0x2e, - 0x31, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, 0x20, 0x7d, 0x0a, - 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, 0x44, - 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, - 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x2d, 0x3e, - 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, - 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x2d, 0x3e, 0x5f, - 0x29, 0x28, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x0a, - 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x20, - 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, - 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x2c, 0x20, 0x5b, 0x74, 0x5d, 0x2c, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x75, - 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x20, 0x72, - 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x78, 0x20, 0x69, 0x20, 0x3d, 0x0a, - 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x45, 0x4f, 0x46, 0x28, 0x72, 0x29, 0x20, 0x6f, 0x72, 0x20, - 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x75, 0x6e, - 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x28, 0x78, 0x2c, 0x20, 0x69, 0x29, 0x3b, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x3a, 0x3a, 0x5b, 0x74, 0x5d, 0x29, - 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x78, 0x5b, 0x69, 0x5d, 0x20, 0x3c, 0x2d, 0x20, 0x75, 0x63, 0x52, - 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x29, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, - 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6e, 0x2c, 0x20, 0x78, - 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x7d, 0x0a, 0x7b, 0x2d, 0x23, 0x20, 0x55, 0x4e, 0x53, 0x41, 0x46, 0x45, - 0x20, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, - 0x20, 0x23, 0x2d, 0x7d, 0x0a, 0x0a, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, - 0x4e, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, - 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, - 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, - 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, - 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, 0x74, - 0x5d, 0x0a, 0x75, 0x63, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, 0x72, 0x20, - 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x54, 0x61, 0x6b, - 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, - 0x2c, 0x20, 0x6e, 0x2c, 0x20, 0x6e, 0x65, 0x77, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x28, 0x6e, 0x29, 0x2c, 0x20, 0x30, 0x4c, 0x29, 0x0a, 0x0a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, - 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x5b, 0x74, 0x5d, 0x20, 0x28, 0x28, 0x70, 0x63, 0x73, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x73, - 0x6d, 0x29, 0x20, 0x28, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x54, - 0x61, 0x6b, 0x65, 0x4e, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, - 0x2c, 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, - 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, - 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, - 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x29, - 0x29, 0x0a, 0x0a, 0x75, 0x63, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x3a, 0x3a, - 0x20, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, - 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, - 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x5b, 0x74, - 0x5d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, - 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x75, 0x63, 0x50, - 0x75, 0x74, 0x4e, 0x20, 0x77, 0x20, 0x6d, 0x20, 0x78, 0x73, 0x20, 0x69, - 0x20, 0x65, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, - 0x20, 0x3d, 0x3d, 0x20, 0x65, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, - 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, - 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, - 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, - 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x6d, 0x2c, 0x20, 0x78, 0x73, - 0x5b, 0x69, 0x5d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, - 0x50, 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x6d, 0x2c, 0x20, 0x78, - 0x73, 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x2c, 0x20, 0x65, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7b, 0x2d, 0x23, 0x20, 0x55, 0x4e, 0x53, - 0x41, 0x46, 0x45, 0x20, 0x75, 0x63, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x23, - 0x2d, 0x7d, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, - 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, - 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x5b, 0x74, 0x5d, 0x20, - 0x28, 0x28, 0x70, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, - 0x29, 0x20, 0x2a, 0x20, 0x74, 0x73, 0x6d, 0x29, 0x20, 0x28, 0x28, 0x70, - 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, - 0x74, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, - 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, - 0x6d, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, - 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, - 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, - 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, - 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x29, 0x29, - 0x3b, 0x20, 0x75, 0x63, 0x50, 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, - 0x64, 0x6d, 0x2e, 0x31, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x30, 0x4c, 0x2c, + 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, + 0x20, 0x78, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, + 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, + 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, + 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x29, 0x29, 0x3b, - 0x20, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x69, 0x74, 0x20, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, - 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x74, 0x20, 0x62, 0x20, 0x7c, 0x20, 0x74, 0x20, 0x2d, 0x3e, 0x20, - 0x62, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, - 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x76, 0x6f, 0x69, 0x64, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, 0x7c, 0x28, 0x29, 0x2b, - 0x73, 0x7c, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x73, 0x20, 0x78, 0x2c, 0x20, 0x28, 0x62, - 0x79, 0x74, 0x65, 0x2a, 0x78, 0x29, 0x3d, 0x72, 0x29, 0x20, 0x3d, 0x3e, + 0x20, 0x75, 0x63, 0x50, 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x64, + 0x6d, 0x2e, 0x31, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x30, 0x4c, 0x2c, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x29, 0x29, 0x3b, 0x20, + 0x7d, 0x0a, 0x0a, 0x75, 0x63, 0x46, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x3a, + 0x3a, 0x20, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, + 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, + 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x5b, + 0x3a, 0x74, 0x7c, 0x6e, 0x3a, 0x5d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, + 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, + 0x29, 0x0a, 0x75, 0x63, 0x46, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x77, 0x20, + 0x6d, 0x20, 0x78, 0x73, 0x20, 0x69, 0x20, 0x65, 0x20, 0x3d, 0x0a, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x65, 0x29, + 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, + 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, + 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, + 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, + 0x6d, 0x2c, 0x20, 0x73, 0x61, 0x65, 0x6c, 0x65, 0x6d, 0x28, 0x78, 0x73, + 0x2c, 0x69, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, + 0x46, 0x50, 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x6d, 0x2c, 0x20, + 0x78, 0x73, 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x2c, 0x20, 0x65, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x74, 0x20, 0x74, 0x73, 0x6d, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, + 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x5b, + 0x3a, 0x74, 0x7c, 0x6e, 0x3a, 0x5d, 0x20, 0x28, 0x28, 0x70, 0x63, 0x73, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, + 0x73, 0x6d, 0x29, 0x20, 0x28, 0x28, 0x70, 0x64, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x64, 0x6d, 0x29, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, + 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, + 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, + 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x77, + 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x73, 0x61, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x29, 0x29, 0x3b, 0x20, 0x75, 0x63, + 0x46, 0x50, 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2e, + 0x31, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x30, 0x4c, 0x2c, 0x20, 0x73, 0x61, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x29, 0x29, 0x3b, 0x20, + 0x7d, 0x0a, 0x0a, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x69, 0x74, 0x20, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x74, 0x20, 0x72, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x20, 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, - 0x74, 0x20, 0x6e, 0x20, 0x7c, 0x20, 0x74, 0x20, 0x2d, 0x3e, 0x20, 0x6e, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, - 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x74, 0x20, 0x62, 0x2c, 0x20, 0x53, 0x69, 0x7a, 0x65, 0x4f, 0x66, 0x20, - 0x62, 0x20, 0x6e, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x45, - 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, 0x6e, 0x0a, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, - 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, 0x6e, - 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x74, 0x20, 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6e, 0x29, 0x20, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x44, - 0x79, 0x6e, 0x44, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x30, 0x3e, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, - 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x64, 0x64, 0x6d, 0x4d, - 0x61, 0x6b, 0x65, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, - 0x73, 0x74, 0x28, 0x66, 0x29, 0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x2c, 0x20, 0x74, 0x69, 0x32, 0x62, 0x28, 0x74, 0x6c, 0x32, 0x69, 0x28, - 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, 0x28, - 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x20, 0x6e, 0x29, - 0x3d, 0x3e, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x2d, 0x31, 0x29, 0x29, 0x0a, - 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x20, - 0x20, 0x3d, 0x20, 0x64, 0x64, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x28, 0x64, - 0x6d, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, - 0x74, 0x28, 0x73, 0x6d, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, - 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, 0x64, - 0x6d, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x0a, 0x0a, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x45, - 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, 0x6e, 0x29, 0x20, - 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, - 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, 0x20, - 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x44, 0x79, 0x6e, 0x44, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x30, 0x3e, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, - 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, - 0x43, 0x61, 0x73, 0x74, 0x28, 0x7b, 0x74, 0x3d, 0x62, 0x32, 0x69, 0x28, - 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x29, 0x29, 0x7d, 0x29, 0x0a, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, - 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, 0x6e, - 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x20, 0x74, 0x20, 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6e, 0x29, 0x20, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x44, - 0x79, 0x6e, 0x44, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x30, 0x3e, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, 0x20, - 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x74, 0x69, 0x32, - 0x62, 0x28, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, - 0x74, 0x28, 0x78, 0x29, 0x3a, 0x3a, 0x7b, 0x74, 0x3a, 0x69, 0x6e, 0x74, - 0x7d, 0x29, 0x2e, 0x74, 0x29, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, - 0x74, 0x73, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, 0x44, - 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x20, 0x74, 0x20, 0x65, 0x20, 0x70, 0x20, 0x7c, 0x20, 0x74, 0x20, 0x2d, - 0x3e, 0x20, 0x65, 0x2c, 0x20, 0x74, 0x20, 0x2d, 0x3e, 0x20, 0x70, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x44, - 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x28, - 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x74, 0x3d, 0x7c, 0x63, 0x3a, 0x68, 0x2b, 0x73, 0x7c, 0x2c, 0x20, 0x55, - 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x6e, 0x74, 0x20, 0x73, 0x20, 0x73, 0x65, 0x20, 0x73, 0x70, 0x2c, 0x20, - 0x7c, 0x63, 0x3a, 0x28, 0x29, 0x2b, 0x73, 0x65, 0x7c, 0x3d, 0x65, 0x2c, - 0x20, 0x28, 0x68, 0x2a, 0x73, 0x70, 0x29, 0x3d, 0x70, 0x29, 0x20, 0x3d, - 0x3e, 0x20, 0x55, 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x20, 0x65, 0x20, 0x70, 0x0a, + 0x74, 0x20, 0x74, 0x20, 0x62, 0x20, 0x7c, 0x20, 0x74, 0x20, 0x2d, 0x3e, + 0x20, 0x62, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x74, 0x3d, 0x7c, 0x28, 0x29, + 0x2b, 0x73, 0x7c, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x73, 0x20, 0x78, 0x2c, 0x20, 0x28, + 0x62, 0x79, 0x74, 0x65, 0x2a, 0x78, 0x29, 0x3d, 0x72, 0x29, 0x20, 0x3d, + 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x20, 0x74, 0x20, 0x72, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x20, 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, + 0x20, 0x74, 0x20, 0x6e, 0x20, 0x7c, 0x20, 0x74, 0x20, 0x2d, 0x3e, 0x20, + 0x6e, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x55, 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x74, 0x20, 0x62, 0x2c, 0x20, 0x53, 0x69, 0x7a, 0x65, 0x4f, 0x66, + 0x20, 0x62, 0x20, 0x6e, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, + 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, 0x6e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, - 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x6e, 0x74, 0x20, 0x74, 0x20, 0x65, 0x20, 0x70, 0x2c, 0x20, 0x55, 0x43, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x65, 0x73, 0x6d, 0x20, - 0x65, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x70, 0x20, 0x70, 0x73, 0x6d, 0x20, 0x70, 0x64, 0x6d, 0x29, 0x20, - 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, - 0x20, 0x28, 0x65, 0x73, 0x6d, 0x2a, 0x70, 0x73, 0x6d, 0x29, 0x20, 0x28, - 0x65, 0x64, 0x6d, 0x2a, 0x70, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x75, 0x63, 0x41, 0x6c, - 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, - 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x5f, 0x20, 0x5f, - 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x29, 0x2c, 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, - 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x29, 0x29, + 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, + 0x6e, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x74, 0x20, 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x6e, 0x29, 0x20, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, + 0x44, 0x79, 0x6e, 0x44, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x30, 0x3e, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x64, 0x64, 0x6d, + 0x4d, 0x61, 0x6b, 0x65, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, + 0x61, 0x73, 0x74, 0x28, 0x66, 0x29, 0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x74, 0x69, 0x32, 0x62, 0x28, 0x74, 0x6c, 0x32, 0x69, + 0x28, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x3a, 0x3a, + 0x28, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x20, 0x6e, + 0x29, 0x3d, 0x3e, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x2d, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, - 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, + 0x20, 0x20, 0x3d, 0x20, 0x64, 0x64, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x28, + 0x64, 0x6d, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, + 0x73, 0x74, 0x28, 0x73, 0x6d, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, + 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, + 0x64, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x0a, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, + 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, 0x6e, 0x29, + 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x20, 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x29, + 0x20, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x44, 0x79, 0x6e, + 0x44, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x30, 0x3e, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, + 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, + 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x7b, 0x74, 0x3d, 0x62, 0x32, 0x69, + 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x29, 0x29, 0x7d, 0x29, 0x0a, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, + 0x43, 0x4d, 0x45, 0x6e, 0x75, 0x6d, 0x4c, 0x65, 0x6e, 0x20, 0x74, 0x20, + 0x6e, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x20, 0x74, 0x20, 0x28, 0x63, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x6e, 0x29, 0x20, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, + 0x44, 0x79, 0x6e, 0x44, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x30, 0x3e, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, + 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x74, 0x69, + 0x32, 0x62, 0x28, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, + 0x73, 0x74, 0x28, 0x78, 0x29, 0x3a, 0x3a, 0x7b, 0x74, 0x3a, 0x69, 0x6e, + 0x74, 0x7d, 0x29, 0x2e, 0x74, 0x29, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, + 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, + 0x74, 0x20, 0x74, 0x20, 0x65, 0x20, 0x70, 0x20, 0x7c, 0x20, 0x74, 0x20, + 0x2d, 0x3e, 0x20, 0x65, 0x2c, 0x20, 0x74, 0x20, 0x2d, 0x3e, 0x20, 0x70, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, + 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, + 0x74, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, + 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x74, 0x3d, 0x7c, 0x63, 0x3a, 0x68, 0x2b, 0x73, 0x7c, 0x2c, 0x20, + 0x55, 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x6e, 0x74, 0x20, 0x73, 0x20, 0x73, 0x65, 0x20, 0x73, 0x70, 0x2c, + 0x20, 0x7c, 0x63, 0x3a, 0x28, 0x29, 0x2b, 0x73, 0x65, 0x7c, 0x3d, 0x65, + 0x2c, 0x20, 0x28, 0x68, 0x2a, 0x73, 0x70, 0x29, 0x3d, 0x70, 0x29, 0x20, + 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x20, 0x65, 0x20, 0x70, + 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x55, 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x6e, 0x74, 0x20, 0x74, 0x20, 0x65, 0x20, 0x70, 0x2c, 0x20, 0x55, + 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x65, 0x73, 0x6d, + 0x20, 0x65, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x70, 0x20, 0x70, 0x73, 0x6d, 0x20, 0x70, 0x64, 0x6d, 0x29, + 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, + 0x74, 0x20, 0x28, 0x65, 0x73, 0x6d, 0x2a, 0x70, 0x73, 0x6d, 0x29, 0x20, + 0x28, 0x65, 0x64, 0x6d, 0x2a, 0x70, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x66, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x75, 0x63, 0x41, + 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x5f, 0x20, - 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, - 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x30, 0x2c, 0x64, 0x6d, 0x2e, 0x30, 0x29, - 0x3b, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, - 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x31, 0x2c, - 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x75, - 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, - 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, + 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x29, 0x2c, 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, + 0x3e, 0x5f, 0x29, 0x28, 0x66, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x29, + 0x29, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, + 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, + 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x5f, + 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, + 0x5f, 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x30, 0x2c, 0x64, 0x6d, 0x2e, 0x30, + 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, + 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x73, 0x6d, 0x2e, 0x31, + 0x2c, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x64, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, + 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x5f, 0x20, + 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, + 0x2e, 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, - 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x5f, 0x20, 0x5f, + 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x2e, - 0x30, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, - 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, - 0x3d, 0x3e, 0x5f, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x2e, 0x31, - 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, - 0x55, 0x43, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x76, 0x20, 0x70, - 0x20, 0x7c, 0x20, 0x76, 0x20, 0x2d, 0x3e, 0x20, 0x70, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x61, 0x64, 0x56, - 0x61, 0x72, 0x20, 0x3a, 0x3a, 0x20, 0x70, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x53, 0x69, 0x7a, 0x65, 0x4f, 0x66, - 0x20, 0x76, 0x20, 0x34, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x50, - 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x76, 0x20, 0x28, 0x29, 0x20, 0x77, + 0x31, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x20, 0x55, 0x43, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x76, 0x20, + 0x70, 0x20, 0x7c, 0x20, 0x76, 0x20, 0x2d, 0x3e, 0x20, 0x70, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x61, 0x64, - 0x56, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, + 0x56, 0x61, 0x72, 0x20, 0x3a, 0x3a, 0x20, 0x70, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x53, 0x69, 0x7a, 0x65, 0x4f, - 0x66, 0x20, 0x76, 0x20, 0x38, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, + 0x66, 0x20, 0x76, 0x20, 0x34, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x76, 0x20, 0x28, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x50, 0x61, 0x64, - 0x56, 0x61, 0x72, 0x20, 0x5f, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x61, 0x64, 0x56, - 0x61, 0x72, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, - 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, - 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, - 0x3a, 0x3a, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x3c, 0x68, 0x6f, - 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x3e, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x6d, 0x29, 0x20, 0x2d, 0x3e, - 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x53, 0x69, 0x7a, 0x65, + 0x4f, 0x66, 0x20, 0x76, 0x20, 0x38, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, + 0x43, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x76, 0x20, 0x28, 0x29, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, + 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x28, 0x29, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x50, 0x61, + 0x64, 0x56, 0x61, 0x72, 0x20, 0x5f, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x61, 0x64, + 0x56, 0x61, 0x72, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x0a, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, + 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, + 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, + 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, + 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x3c, 0x68, + 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x6d, 0x29, 0x20, 0x2d, + 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, + 0x70, 0x70, 0x52, 0x46, 0x20, 0x5f, 0x20, 0x28, 0x29, 0x20, 0x5f, 0x20, + 0x5f, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, + 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, + 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, 0x28, + 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x70, 0x3d, 0x28, 0x68, 0x2a, 0x70, 0x74, 0x29, 0x2c, 0x20, 0x66, 0x3d, + 0x7b, 0x5f, 0x2a, 0x66, 0x74, 0x7d, 0x2c, 0x20, 0x6d, 0x3d, 0x28, 0x68, + 0x6d, 0x2a, 0x6d, 0x74, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, + 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, + 0x70, 0x74, 0x20, 0x66, 0x74, 0x20, 0x6d, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, - 0x70, 0x52, 0x46, 0x20, 0x5f, 0x20, 0x28, 0x29, 0x20, 0x5f, 0x20, 0x5f, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, + 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, + 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x69, + 0x20, 0x72, 0x20, 0x66, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, + 0x20, 0x7b, 0x20, 0x70, 0x61, 0x64, 0x56, 0x3d, 0x75, 0x63, 0x50, 0x61, + 0x64, 0x56, 0x61, 0x72, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x50, 0x61, 0x64, + 0x56, 0x61, 0x72, 0x20, 0x76, 0x20, 0x78, 0x29, 0x3d, 0x3e, 0x78, 0x3b, + 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x28, 0x66, 0x29, 0x20, 0x3c, 0x2d, 0x20, 0x28, + 0x5c, 0x28, 0x29, 0x2e, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, + 0x73, 0x74, 0x28, 0x28, 0x69, 0x2c, 0x70, 0x61, 0x64, 0x56, 0x2c, 0x28, + 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x68, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, + 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, + 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3a, 0x3a, 0x68, 0x29, 0x29, 0x3a, + 0x3a, 0x76, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, + 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x3a, 0x3a, 0x28, 0x55, + 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, + 0x46, 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, 0x6c, 0x66, 0x74, 0x20, 0x6c, + 0x6d, 0x74, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x2c, + 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x69, 0x2b, 0x31, 0x2c, 0x20, + 0x72, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x61, 0x69, + 0x6c, 0x28, 0x66, 0x29, 0x3a, 0x3a, 0x6c, 0x66, 0x74, 0x2c, 0x20, 0x74, + 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, + 0x3a, 0x3a, 0x6c, 0x6d, 0x74, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x70, 0x3d, 0x28, 0x68, + 0x2a, 0x70, 0x74, 0x29, 0x2c, 0x20, 0x66, 0x3d, 0x28, 0x5f, 0x2a, 0x66, + 0x74, 0x29, 0x2c, 0x20, 0x6d, 0x3d, 0x28, 0x68, 0x6d, 0x2a, 0x6d, 0x74, + 0x29, 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, + 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, 0x66, + 0x74, 0x20, 0x6d, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, - 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, 0x28, 0x29, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x70, - 0x3d, 0x28, 0x68, 0x2a, 0x70, 0x74, 0x29, 0x2c, 0x20, 0x66, 0x3d, 0x7b, - 0x5f, 0x2a, 0x66, 0x74, 0x7d, 0x2c, 0x20, 0x6d, 0x3d, 0x28, 0x68, 0x6d, - 0x2a, 0x6d, 0x74, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, - 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, - 0x74, 0x20, 0x66, 0x74, 0x20, 0x6d, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, - 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, - 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, 0x69, - 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x69, 0x20, - 0x72, 0x20, 0x66, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, - 0x7b, 0x20, 0x70, 0x61, 0x64, 0x56, 0x3d, 0x75, 0x63, 0x50, 0x61, 0x64, - 0x56, 0x61, 0x72, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x50, 0x61, 0x64, 0x56, - 0x61, 0x72, 0x20, 0x76, 0x20, 0x78, 0x29, 0x3d, 0x3e, 0x78, 0x3b, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x28, 0x66, 0x29, 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x5c, - 0x28, 0x29, 0x2e, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, - 0x74, 0x28, 0x28, 0x69, 0x2c, 0x70, 0x61, 0x64, 0x56, 0x2c, 0x28, 0x75, - 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x68, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, - 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x20, - 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3a, 0x3a, 0x68, 0x29, 0x29, 0x3a, 0x3a, - 0x76, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, - 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x3a, 0x3a, 0x28, 0x55, 0x43, - 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, - 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, 0x6c, 0x66, 0x74, 0x20, 0x6c, 0x6d, - 0x74, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, - 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x69, 0x2b, 0x31, 0x2c, 0x20, 0x72, - 0x2c, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x61, 0x69, 0x6c, - 0x28, 0x66, 0x29, 0x3a, 0x3a, 0x6c, 0x66, 0x74, 0x2c, 0x20, 0x74, 0x75, - 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x3a, - 0x3a, 0x6c, 0x6d, 0x74, 0x29, 0x3b, 0x20, 0x7d, 0x0a, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x70, 0x3d, 0x28, 0x68, 0x2a, - 0x70, 0x74, 0x29, 0x2c, 0x20, 0x66, 0x3d, 0x28, 0x5f, 0x2a, 0x66, 0x74, - 0x29, 0x2c, 0x20, 0x6d, 0x3d, 0x28, 0x68, 0x6d, 0x2a, 0x6d, 0x74, 0x29, - 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, - 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, 0x66, 0x74, - 0x20, 0x6d, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x49, 0x6e, - 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, - 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, - 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x69, 0x20, 0x72, 0x20, 0x66, 0x20, - 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x70, 0x61, - 0x64, 0x56, 0x3d, 0x75, 0x63, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x3a, - 0x3a, 0x28, 0x55, 0x43, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, 0x76, - 0x20, 0x78, 0x29, 0x3d, 0x3e, 0x78, 0x3b, 0x20, 0x66, 0x2e, 0x30, 0x20, - 0x3c, 0x2d, 0x20, 0x28, 0x5c, 0x28, 0x29, 0x2e, 0x75, 0x6e, 0x73, 0x61, - 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x28, 0x69, 0x2c, 0x70, 0x61, - 0x64, 0x56, 0x2c, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, - 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x68, 0x20, 0x5f, 0x20, - 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, - 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3a, 0x3a, - 0x68, 0x29, 0x29, 0x3a, 0x3a, 0x76, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, + 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, + 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x69, 0x20, 0x72, 0x20, 0x66, + 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x70, + 0x61, 0x64, 0x56, 0x3d, 0x75, 0x63, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x50, 0x61, 0x64, 0x56, 0x61, 0x72, 0x20, + 0x76, 0x20, 0x78, 0x29, 0x3d, 0x3e, 0x78, 0x3b, 0x20, 0x66, 0x2e, 0x30, + 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x5c, 0x28, 0x29, 0x2e, 0x75, 0x6e, 0x73, + 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x28, 0x69, 0x2c, 0x70, + 0x61, 0x64, 0x56, 0x2c, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, + 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x68, 0x20, 0x5f, + 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, + 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x3a, + 0x3a, 0x68, 0x29, 0x29, 0x3a, 0x3a, 0x76, 0x29, 0x3b, 0x20, 0x28, 0x75, + 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, + 0x46, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, + 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, + 0x6c, 0x66, 0x74, 0x20, 0x6c, 0x6d, 0x74, 0x29, 0x3d, 0x3e, 0x28, 0x5f, + 0x2c, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, + 0x69, 0x2b, 0x31, 0x2c, 0x20, 0x72, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, + 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x66, 0x29, 0x3a, 0x3a, 0x6c, 0x66, + 0x74, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, + 0x28, 0x64, 0x6d, 0x29, 0x3a, 0x3a, 0x6c, 0x6d, 0x74, 0x29, 0x3b, 0x20, + 0x7d, 0x20, 0x2f, 0x2f, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x77, 0x65, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x6f, + 0x67, 0x69, 0x63, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6e, 0x61, 0x6b, + 0x65, 0x64, 0x20, 0x73, 0x75, 0x6d, 0x73, 0x22, 0x0a, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x44, 0x69, + 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, + 0x76, 0x20, 0x65, 0x20, 0x70, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x65, 0x20, 0x65, 0x73, 0x6d, 0x20, 0x65, 0x64, 0x6d, + 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, + 0x70, 0x73, 0x6d, 0x20, 0x70, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, + 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x76, 0x20, 0x28, 0x65, 0x73, + 0x6d, 0x2a, 0x70, 0x73, 0x6d, 0x29, 0x20, 0x28, 0x65, 0x64, 0x6d, 0x2a, + 0x70, 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, + 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, + 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x66, 0x3d, 0x6e, 0x65, + 0x77, 0x50, 0x72, 0x69, 0x6d, 0x28, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, - 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, 0x6c, - 0x66, 0x74, 0x20, 0x6c, 0x6d, 0x74, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, - 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x69, - 0x2b, 0x31, 0x2c, 0x20, 0x72, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, - 0x54, 0x61, 0x69, 0x6c, 0x28, 0x66, 0x29, 0x3a, 0x3a, 0x6c, 0x66, 0x74, - 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, - 0x64, 0x6d, 0x29, 0x3a, 0x3a, 0x6c, 0x6d, 0x74, 0x29, 0x3b, 0x20, 0x7d, - 0x20, 0x2f, 0x2f, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x77, 0x65, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x67, - 0x69, 0x63, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, - 0x6e, 0x74, 0x73, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6e, 0x61, 0x6b, 0x65, - 0x64, 0x20, 0x73, 0x75, 0x6d, 0x73, 0x22, 0x0a, 0x0a, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x44, 0x69, 0x76, - 0x69, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x76, - 0x20, 0x65, 0x20, 0x70, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x65, 0x20, 0x65, 0x73, 0x6d, 0x20, 0x65, 0x64, 0x6d, 0x2c, - 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, 0x70, - 0x73, 0x6d, 0x20, 0x70, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, - 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x76, 0x20, 0x28, 0x65, 0x73, 0x6d, - 0x2a, 0x70, 0x73, 0x6d, 0x29, 0x20, 0x28, 0x65, 0x64, 0x6d, 0x2a, 0x70, - 0x64, 0x6d, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, - 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x66, 0x3d, 0x6e, 0x65, 0x77, - 0x50, 0x72, 0x69, 0x6d, 0x28, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, - 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x52, 0x46, 0x3a, - 0x3a, 0x28, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, - 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, - 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x29, - 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x30, 0x2c, 0x20, 0x72, 0x2c, 0x20, 0x66, - 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x41, - 0x70, 0x70, 0x28, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, - 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x65, 0x20, 0x5f, 0x20, - 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5f, - 0x29, 0x28, 0x72, 0x2c, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, - 0x29, 0x20, 0x7d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, - 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, - 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, - 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x3a, 0x3a, 0x20, - 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x6d, - 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, - 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x5f, 0x20, 0x28, 0x29, - 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, - 0x20, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, - 0x70, 0x57, 0x46, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, 0x20, - 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x28, 0x70, 0x3d, 0x28, 0x68, 0x2a, 0x70, 0x74, 0x29, 0x2c, 0x20, 0x66, - 0x3d, 0x7b, 0x5f, 0x2a, 0x66, 0x74, 0x7d, 0x2c, 0x20, 0x6d, 0x3d, 0x28, - 0x68, 0x6d, 0x2a, 0x6d, 0x74, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, - 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, - 0x20, 0x70, 0x74, 0x20, 0x66, 0x74, 0x20, 0x6d, 0x74, 0x29, 0x20, 0x3d, - 0x3e, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, - 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, - 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, - 0x77, 0x20, 0x66, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, - 0x7b, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x66, 0x29, 0x20, 0x3c, 0x2d, 0x20, - 0x28, 0x5c, 0x78, 0x2e, 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x68, - 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, - 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x78, 0x29, 0x29, 0x3b, 0x20, - 0x28, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, - 0x70, 0x57, 0x46, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, - 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, - 0x74, 0x20, 0x6c, 0x66, 0x74, 0x20, 0x6c, 0x6d, 0x74, 0x29, 0x3d, 0x3e, - 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x54, 0x61, 0x69, 0x6c, 0x28, 0x66, 0x29, 0x3a, 0x3a, 0x6c, 0x66, 0x74, - 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, - 0x64, 0x6d, 0x29, 0x3a, 0x3a, 0x6c, 0x6d, 0x74, 0x29, 0x3b, 0x20, 0x7d, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x70, - 0x3d, 0x28, 0x68, 0x2a, 0x70, 0x74, 0x29, 0x2c, 0x20, 0x66, 0x3d, 0x28, - 0x5f, 0x2a, 0x66, 0x74, 0x29, 0x2c, 0x20, 0x6d, 0x3d, 0x28, 0x68, 0x6d, - 0x2a, 0x6d, 0x74, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, - 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, - 0x74, 0x20, 0x66, 0x74, 0x20, 0x6d, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, + 0x41, 0x70, 0x70, 0x52, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x5f, 0x20, + 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, 0x2c, 0x5f, + 0x29, 0x2d, 0x3e, 0x5f, 0x29, 0x28, 0x30, 0x2c, 0x20, 0x72, 0x2c, 0x20, + 0x66, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, 0x29, 0x3b, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, + 0x41, 0x70, 0x70, 0x28, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, + 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x65, 0x20, 0x5f, + 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, + 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x6d, 0x2e, 0x30, 0x29, 0x2c, 0x20, + 0x66, 0x29, 0x20, 0x7d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, 0x69, - 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x77, 0x20, - 0x66, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, - 0x66, 0x2e, 0x30, 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x5c, 0x78, 0x2e, 0x28, - 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x68, 0x20, 0x5f, 0x20, 0x5f, 0x29, - 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, - 0x2c, 0x20, 0x78, 0x29, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, 0x6e, - 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x3a, 0x3a, - 0x28, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, - 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, 0x6c, 0x66, 0x74, - 0x20, 0x6c, 0x6d, 0x74, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, - 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x66, - 0x29, 0x3a, 0x3a, 0x6c, 0x66, 0x74, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, - 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x3a, 0x3a, 0x6c, - 0x6d, 0x74, 0x29, 0x3b, 0x20, 0x7d, 0x20, 0x2f, 0x2f, 0x20, 0x6e, 0x61, - 0x6b, 0x65, 0x64, 0x20, 0x73, 0x75, 0x6d, 0x73, 0x20, 0x61, 0x67, 0x61, - 0x69, 0x6e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x28, 0x55, 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x76, 0x20, 0x65, 0x20, 0x70, 0x2c, - 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, 0x65, - 0x73, 0x6d, 0x20, 0x65, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, 0x70, 0x73, 0x6d, 0x20, 0x70, 0x64, - 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x20, 0x76, 0x20, 0x28, 0x65, 0x73, 0x6d, 0x2a, 0x70, 0x73, 0x6d, - 0x29, 0x20, 0x28, 0x65, 0x64, 0x6d, 0x2a, 0x70, 0x64, 0x6d, 0x29, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x76, 0x20, 0x3d, - 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x28, - 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x76, - 0x29, 0x3a, 0x3a, 0x7b, 0x78, 0x3a, 0x65, 0x7d, 0x29, 0x2e, 0x78, 0x29, - 0x3b, 0x20, 0x66, 0x3d, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x69, 0x6d, 0x28, - 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, - 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x49, + 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x3a, 0x3a, + 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x66, 0x2c, 0x20, + 0x6d, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, + 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x5f, 0x20, 0x28, + 0x29, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, + 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, + 0x70, 0x70, 0x57, 0x46, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x3d, + 0x20, 0x28, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x20, 0x28, 0x70, 0x3d, 0x28, 0x68, 0x2a, 0x70, 0x74, 0x29, 0x2c, 0x20, + 0x66, 0x3d, 0x7b, 0x5f, 0x2a, 0x66, 0x74, 0x7d, 0x2c, 0x20, 0x6d, 0x3d, + 0x28, 0x68, 0x6d, 0x2a, 0x6d, 0x74, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, - 0x76, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, - 0x28, 0x77, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, 0x29, - 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x61, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x28, 0x76, 0x2c, 0x20, 0x66, - 0x29, 0x20, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x65, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x73, 0x20, 0x64, 0x29, - 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x74, 0x40, 0x3f, 0x20, 0x73, 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, - 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, + 0x76, 0x20, 0x70, 0x74, 0x20, 0x66, 0x74, 0x20, 0x6d, 0x74, 0x29, 0x20, + 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, + 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, + 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, + 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, + 0x20, 0x77, 0x20, 0x66, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, + 0x20, 0x7b, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x66, 0x29, 0x20, 0x3c, 0x2d, + 0x20, 0x28, 0x5c, 0x78, 0x2e, 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, + 0x68, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x77, + 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x2c, 0x20, 0x78, 0x29, 0x29, 0x3b, + 0x20, 0x28, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, + 0x70, 0x70, 0x57, 0x46, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x49, 0x6e, 0x69, + 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, + 0x70, 0x74, 0x20, 0x6c, 0x66, 0x74, 0x20, 0x6c, 0x6d, 0x74, 0x29, 0x3d, + 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x66, 0x29, 0x3a, 0x3a, 0x6c, 0x66, + 0x74, 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, + 0x28, 0x64, 0x6d, 0x29, 0x3a, 0x3a, 0x6c, 0x6d, 0x74, 0x29, 0x3b, 0x20, + 0x7d, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x70, 0x3d, 0x28, 0x68, 0x2a, 0x70, 0x74, 0x29, 0x2c, 0x20, 0x66, 0x3d, + 0x28, 0x5f, 0x2a, 0x66, 0x74, 0x29, 0x2c, 0x20, 0x6d, 0x3d, 0x28, 0x68, + 0x6d, 0x2a, 0x6d, 0x74, 0x29, 0x2c, 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, + 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, + 0x70, 0x74, 0x20, 0x66, 0x74, 0x20, 0x6d, 0x74, 0x29, 0x20, 0x3d, 0x3e, + 0x20, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, + 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, 0x20, 0x66, 0x20, 0x6d, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x49, 0x6e, + 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x20, 0x77, + 0x20, 0x66, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, + 0x20, 0x66, 0x2e, 0x30, 0x20, 0x3c, 0x2d, 0x20, 0x28, 0x5c, 0x78, 0x2e, + 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, + 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x68, 0x20, 0x5f, 0x20, 0x5f, + 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2e, + 0x30, 0x2c, 0x20, 0x78, 0x29, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, + 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x3a, + 0x3a, 0x28, 0x55, 0x43, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, + 0x70, 0x70, 0x57, 0x46, 0x20, 0x76, 0x20, 0x70, 0x74, 0x20, 0x6c, 0x66, + 0x74, 0x20, 0x6c, 0x6d, 0x74, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x77, + 0x2c, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, + 0x66, 0x29, 0x3a, 0x3a, 0x6c, 0x66, 0x74, 0x2c, 0x20, 0x74, 0x75, 0x70, + 0x6c, 0x65, 0x54, 0x61, 0x69, 0x6c, 0x28, 0x64, 0x6d, 0x29, 0x3a, 0x3a, + 0x6c, 0x6d, 0x74, 0x29, 0x3b, 0x20, 0x7d, 0x20, 0x2f, 0x2f, 0x20, 0x6e, + 0x61, 0x6b, 0x65, 0x64, 0x20, 0x73, 0x75, 0x6d, 0x73, 0x20, 0x61, 0x67, + 0x61, 0x69, 0x6e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x55, 0x43, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x76, 0x20, 0x65, 0x20, 0x70, + 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x20, + 0x65, 0x73, 0x6d, 0x20, 0x65, 0x64, 0x6d, 0x2c, 0x20, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x70, 0x20, 0x70, 0x73, 0x6d, 0x20, 0x70, + 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x20, 0x76, 0x20, 0x28, 0x65, 0x73, 0x6d, 0x2a, 0x70, 0x73, + 0x6d, 0x29, 0x20, 0x28, 0x65, 0x64, 0x6d, 0x2a, 0x70, 0x64, 0x6d, 0x29, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x76, 0x20, + 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x30, 0x2c, 0x20, + 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, + 0x76, 0x29, 0x3a, 0x3a, 0x7b, 0x78, 0x3a, 0x65, 0x7d, 0x29, 0x2e, 0x78, + 0x29, 0x3b, 0x20, 0x66, 0x3d, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x69, 0x6d, + 0x28, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x56, + 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x41, 0x70, 0x70, 0x57, 0x46, + 0x20, 0x76, 0x20, 0x70, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, + 0x29, 0x28, 0x77, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x64, 0x6d, 0x2e, 0x31, + 0x29, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x28, 0x76, 0x2c, 0x20, + 0x66, 0x29, 0x20, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x73, 0x20, 0x64, + 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x74, 0x40, 0x3f, 0x20, 0x73, 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x41, 0x6c, + 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, + 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, + 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, + 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, + 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, + 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, + 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, + 0x5f, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, - 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, - 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, - 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x20, 0x73, 0x20, 0x64, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x40, 0x66, 0x20, 0x73, 0x20, 0x64, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, + 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, + 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, - 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x44, + 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, + 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, - 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, - 0x73, 0x20, 0x64, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x74, 0x40, 0x66, 0x20, 0x73, 0x20, 0x64, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x41, 0x6c, - 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, - 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, - 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x3d, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, - 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, - 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, - 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, - 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x20, 0x73, 0x20, 0x64, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, - 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x40, 0x3f, 0x20, 0x73, 0x20, - 0x64, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x20, 0x3d, 0x20, 0x75, - 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x28, 0x75, - 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, - 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x29, 0x29, 0x0a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x73, 0x20, 0x64, - 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x40, 0x66, 0x20, 0x73, 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, - 0x20, 0x64, 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, - 0x61, 0x73, 0x74, 0x28, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, - 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, - 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x72, - 0x2c, 0x64, 0x29, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x6c, + 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x73, 0x20, 0x64, 0x29, 0x20, 0x3d, 0x3e, 0x20, - 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x40, 0x3f, 0x20, - 0x73, 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, - 0x20, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, - 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x78, 0x29, 0x3a, 0x3a, - 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x40, 0x3f, 0x20, 0x73, + 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, + 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, 0x20, 0x3d, 0x20, + 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x28, + 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, + 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x29, 0x29, 0x0a, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x73, 0x20, + 0x64, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x40, 0x66, 0x20, 0x73, 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, + 0x72, 0x20, 0x64, 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, + 0x43, 0x61, 0x73, 0x74, 0x28, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x6f, + 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, + 0x72, 0x2c, 0x64, 0x29, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x73, 0x20, 0x64, 0x29, 0x20, 0x3d, 0x3e, - 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x40, 0x66, + 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x40, 0x3f, 0x20, 0x73, 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x57, 0x72, 0x69, @@ -11559,372 +11679,384 @@ unsigned char __zstorage_hob[] = { 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x78, 0x29, 0x3a, - 0x3a, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x44, 0x61, 0x74, 0x61, 0x20, 0x64, - 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, - 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, - 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x20, 0x73, 0x6d, - 0x20, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x3d, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, - 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, - 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, - 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, - 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x44, 0x61, - 0x74, 0x61, 0x20, 0x64, 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, - 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x64, 0x20, - 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, - 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, 0x64, - 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, - 0x74, 0x28, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, 0x28, - 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, - 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x29, 0x29, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x44, 0x61, - 0x74, 0x61, 0x20, 0x64, 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, - 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, - 0x64, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, - 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, - 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x75, 0x6e, - 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x78, 0x29, 0x3a, - 0x3a, 0x74, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x61, 0x6e, 0x20, 0x61, - 0x72, 0x72, 0x61, 0x79, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, - 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x20, 0x3a, - 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, - 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, - 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x2c, 0x20, 0x5b, 0x74, 0x5d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, - 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x75, 0x63, - 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, - 0x70, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x78, 0x20, 0x69, - 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x63, 0x52, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x4f, 0x46, 0x28, 0x72, 0x29, 0x20, - 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x29, 0x20, 0x74, - 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x20, 0x7b, - 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 0x74, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x2c, 0x20, 0x69, 0x29, 0x3b, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x3a, 0x3a, 0x5b, - 0x74, 0x5d, 0x29, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x78, 0x5b, 0x69, 0x5d, 0x20, 0x3c, 0x2d, 0x20, - 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x74, 0x65, - 0x70, 0x28, 0x72, 0x29, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, - 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x3a, 0x3a, - 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x20, - 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, - 0x2c, 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, 0x2c, - 0x20, 0x64, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, - 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x28, 0x72, 0x2c, 0x20, - 0x64, 0x6d, 0x2c, 0x20, 0x6e, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x69, 0x2b, - 0x31, 0x4c, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7b, 0x2d, - 0x23, 0x20, 0x55, 0x4e, 0x53, 0x41, 0x46, 0x45, 0x20, 0x75, 0x63, 0x52, - 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, 0x23, 0x2d, 0x7d, - 0x0a, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, - 0x4e, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, + 0x3a, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x73, 0x20, 0x64, 0x29, 0x20, 0x3d, + 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x40, + 0x66, 0x20, 0x73, 0x20, 0x64, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, + 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x77, 0x20, + 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, + 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x78, 0x29, + 0x3a, 0x3a, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x0a, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x44, 0x61, 0x74, 0x61, 0x20, + 0x64, 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, - 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, - 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, - 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, 0x74, - 0x5d, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, - 0x4e, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x69, - 0x66, 0x20, 0x28, 0x6e, 0x3d, 0x3d, 0x30, 0x29, 0x20, 0x74, 0x68, 0x65, - 0x6e, 0x20, 0x5b, 0x5d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x75, 0x63, - 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, - 0x70, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6e, 0x2c, 0x20, - 0x6e, 0x65, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6e, 0x29, 0x2c, - 0x20, 0x30, 0x4c, 0x29, 0x0a, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, - 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, - 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, - 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, - 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, - 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, - 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, - 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x63, 0x52, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x4f, 0x46, 0x28, 0x72, 0x29, 0x20, - 0x6f, 0x72, 0x20, 0x6e, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x74, - 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x5b, 0x5d, 0x3a, - 0x3a, 0x5b, 0x74, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, - 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, - 0x52, 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, 0x64, 0x6d, 0x29, 0x3a, 0x3a, - 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, - 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x74, 0x65, 0x70, 0x28, - 0x72, 0x29, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x74, 0x20, 0x73, 0x6d, - 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x64, 0x6d, 0x29, - 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, - 0x74, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, - 0x2c, 0x20, 0x6e, 0x2d, 0x31, 0x4c, 0x29, 0x0a, 0x20, 0x20, 0x7d, 0x0a, - 0x0a, 0x63, 0x73, 0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, 0x3a, - 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, - 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x28, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x29, 0x2c, - 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, - 0x6e, 0x29, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, - 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x63, 0x73, 0x65, 0x71, 0x54, 0x61, 0x6b, - 0x65, 0x4e, 0x20, 0x66, 0x20, 0x73, 0x20, 0x6b, 0x20, 0x3d, 0x20, 0x64, - 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x75, - 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x6b, 0x65, 0x28, - 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, - 0x29, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, - 0x74, 0x28, 0x73, 0x29, 0x2c, 0x20, 0x63, 0x73, 0x65, 0x71, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x28, 0x73, 0x29, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x41, - 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, - 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, - 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x75, 0x6e, 0x73, - 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x29, 0x2c, 0x74, - 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x28, 0x75, 0x63, 0x50, + 0x20, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x64, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, + 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, + 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x50, 0x72, 0x65, + 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, + 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, + 0x29, 0x3d, 0x3e, 0x5f, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x44, 0x65, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x3d, 0x20, + 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x44, + 0x61, 0x74, 0x61, 0x20, 0x64, 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, + 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x64, + 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x20, 0x72, 0x20, + 0x64, 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, + 0x73, 0x74, 0x28, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x3a, 0x3a, + 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x5f, 0x20, + 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x72, 0x2c, 0x64, 0x29, 0x29, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x44, + 0x61, 0x74, 0x61, 0x20, 0x64, 0x20, 0x74, 0x2c, 0x20, 0x55, 0x43, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x20, 0x64, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x75, + 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x3d, + 0x3e, 0x5f, 0x29, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x78, 0x29, + 0x3a, 0x3a, 0x74, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x61, 0x6e, 0x20, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x75, 0x63, 0x52, 0x6f, + 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x20, + 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, + 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x2c, 0x20, 0x5b, 0x74, 0x5d, 0x2c, 0x20, 0x6c, 0x6f, + 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x75, + 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, + 0x65, 0x70, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x78, 0x20, + 0x69, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x63, + 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x4f, 0x46, 0x28, 0x72, 0x29, + 0x20, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x29, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x20, + 0x7b, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 0x74, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x28, 0x78, 0x2c, 0x20, 0x69, 0x29, 0x3b, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x3a, 0x3a, + 0x5b, 0x74, 0x5d, 0x29, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x5b, 0x69, 0x5d, 0x20, 0x3c, 0x2d, + 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, 0x20, 0x64, + 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x74, + 0x65, 0x70, 0x28, 0x72, 0x29, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, - 0x2c, 0x20, 0x64, 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x78, 0x20, 0x20, - 0x3d, 0x20, 0x28, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, - 0x65, 0x4e, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, - 0x2c, 0x64, 0x6d, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5b, 0x74, 0x5d, 0x29, - 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6b, 0x29, 0x3b, 0x0a, + 0x2c, 0x20, 0x64, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, + 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, 0x65, 0x70, 0x28, 0x72, 0x2c, + 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6e, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x69, + 0x2b, 0x31, 0x4c, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7b, + 0x2d, 0x23, 0x20, 0x55, 0x4e, 0x53, 0x41, 0x46, 0x45, 0x20, 0x75, 0x63, + 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, 0x23, 0x2d, + 0x7d, 0x0a, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, + 0x65, 0x4e, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, + 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, + 0x3e, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, + 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, + 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x5b, + 0x74, 0x5d, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, + 0x65, 0x4e, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x6e, 0x20, 0x3d, 0x20, + 0x69, 0x66, 0x20, 0x28, 0x6e, 0x3d, 0x3d, 0x30, 0x29, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x20, 0x5b, 0x5d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x75, + 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x53, 0x74, + 0x65, 0x70, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6e, 0x2c, + 0x20, 0x6e, 0x65, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6e, 0x29, + 0x2c, 0x20, 0x30, 0x4c, 0x29, 0x0a, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, + 0x74, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, + 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, + 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, 0x6f, 0x62, 0x62, + 0x65, 0x73, 0x2e, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, + 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, + 0x2d, 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, + 0x74, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x20, 0x72, 0x20, 0x64, 0x6d, 0x20, + 0x6e, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x63, + 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x4f, 0x46, 0x28, 0x72, 0x29, + 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x29, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x5b, 0x5d, + 0x3a, 0x3a, 0x5b, 0x74, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, + 0x63, 0x52, 0x65, 0x61, 0x64, 0x28, 0x72, 0x2c, 0x64, 0x6d, 0x29, 0x3a, + 0x3a, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, + 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x74, 0x65, 0x70, + 0x28, 0x72, 0x29, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x74, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x64, 0x6d, + 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x63, 0x52, 0x6f, + 0x6f, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x28, 0x72, 0x2c, 0x20, 0x64, + 0x6d, 0x2c, 0x20, 0x6e, 0x2d, 0x31, 0x4c, 0x29, 0x0a, 0x20, 0x20, 0x7d, + 0x0a, 0x0a, 0x63, 0x73, 0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x4e, 0x20, + 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, + 0x28, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x29, 0x20, 0x28, 0x29, 0x29, + 0x2c, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, 0x73, 0x6d, + 0x20, 0x6e, 0x29, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, + 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x63, 0x73, 0x65, 0x71, 0x54, 0x61, + 0x6b, 0x65, 0x4e, 0x20, 0x66, 0x20, 0x73, 0x20, 0x6b, 0x20, 0x3d, 0x20, + 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x20, 0x20, 0x3d, 0x20, + 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x6b, 0x65, + 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, + 0x66, 0x29, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, + 0x73, 0x74, 0x28, 0x73, 0x29, 0x2c, 0x20, 0x63, 0x73, 0x65, 0x71, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x28, 0x73, 0x29, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, + 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, + 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x75, 0x6e, + 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x29, 0x2c, + 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x28, 0x75, 0x63, + 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, + 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, + 0x70, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, + 0x28, 0x5f, 0x2c, 0x64, 0x6d, 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, + 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x3d, 0x20, 0x28, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, + 0x6b, 0x65, 0x4e, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, + 0x5f, 0x2c, 0x64, 0x6d, 0x2c, 0x5f, 0x29, 0x2d, 0x3e, 0x5b, 0x74, 0x5d, + 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x6b, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x29, 0x3d, 0x3e, 0x64, 0x6d, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x64, + 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x72, 0x29, + 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x78, 0x0a, 0x7d, 0x0a, 0x0a, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x53, 0x65, 0x65, 0x6b, 0x20, 0x72, 0x20, 0x6e, 0x20, 0x3d, 0x0a, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x20, 0x3c, 0x3d, 0x20, 0x30, + 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x53, 0x6b, 0x69, 0x70, 0x50, 0x61, 0x67, 0x65, 0x28, 0x72, 0x29, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x53, 0x65, 0x65, 0x6b, 0x28, 0x72, 0x2c, 0x20, 0x6e, 0x2d, 0x31, 0x29, + 0x29, 0x0a, 0x0a, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x28, 0x29, 0x20, 0x28, 0x29, 0x29, 0x2c, 0x20, 0x28, 0x63, 0x73, 0x65, + 0x71, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x6e, 0x29, 0x2c, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, + 0x3e, 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, + 0x61, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x20, 0x66, 0x20, 0x73, + 0x20, 0x69, 0x20, 0x65, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x28, 0x73, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x52, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x6b, 0x65, 0x28, 0x75, 0x6e, 0x73, + 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x29, 0x2c, 0x20, + 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x73, + 0x29, 0x2c, 0x20, 0x6e, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x6d, 0x20, + 0x3d, 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, + 0x5f, 0x29, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, + 0x74, 0x28, 0x66, 0x29, 0x2c, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x78, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6b, 0x28, 0x72, 0x2c, 0x20, 0x69, + 0x2f, 0x6e, 0x29, 0x29, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x5b, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x3a, 0x3a, 0x28, 0x55, 0x43, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x74, 0x20, 0x73, + 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x64, 0x6d, + 0x29, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, 0x52, + 0x6f, 0x6f, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x28, 0x72, 0x2c, 0x20, + 0x64, 0x6d, 0x2c, 0x20, 0x69, 0x25, 0x6e, 0x29, 0x3a, 0x3a, 0x5b, 0x74, + 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, + 0x6b, 0x65, 0x4e, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x65, + 0x2d, 0x69, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, - 0x3d, 0x3e, 0x64, 0x6d, 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x64, 0x6d, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x72, 0x29, 0x3b, - 0x0a, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, - 0x0a, 0x7d, 0x0a, 0x0a, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x53, 0x65, 0x65, 0x6b, 0x20, 0x72, 0x20, 0x6e, 0x20, 0x3d, 0x0a, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x29, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, - 0x6b, 0x69, 0x70, 0x50, 0x61, 0x67, 0x65, 0x28, 0x72, 0x29, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, - 0x65, 0x65, 0x6b, 0x28, 0x72, 0x2c, 0x20, 0x6e, 0x2d, 0x31, 0x29, 0x29, - 0x0a, 0x0a, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x55, 0x43, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, - 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, - 0x29, 0x20, 0x28, 0x29, 0x29, 0x2c, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, - 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x6e, 0x29, 0x2c, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, - 0x20, 0x5b, 0x74, 0x5d, 0x0a, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, 0x61, - 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x20, 0x66, 0x20, 0x73, 0x20, - 0x69, 0x20, 0x65, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x28, 0x73, 0x29, 0x3b, 0x0a, - 0x20, 0x20, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x75, 0x63, 0x52, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4d, 0x61, 0x6b, 0x65, 0x28, 0x75, 0x6e, 0x73, 0x61, - 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x29, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x73, 0x29, - 0x2c, 0x20, 0x6e, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x6d, 0x20, 0x3d, - 0x20, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, - 0x29, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, - 0x28, 0x66, 0x29, 0x2c, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a, 0x0a, - 0x20, 0x20, 0x78, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, - 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x28, 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x53, 0x65, 0x65, 0x6b, 0x28, 0x72, 0x2c, 0x20, 0x69, 0x2f, - 0x6e, 0x29, 0x29, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x5b, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x6c, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x74, 0x20, 0x73, 0x6d, - 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x28, 0x5f, 0x2c, 0x64, 0x6d, 0x29, - 0x2d, 0x3e, 0x28, 0x29, 0x29, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, 0x52, 0x6f, - 0x6f, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x28, 0x72, 0x2c, 0x20, 0x64, - 0x6d, 0x2c, 0x20, 0x69, 0x25, 0x6e, 0x29, 0x3a, 0x3a, 0x5b, 0x74, 0x5d, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x6b, - 0x65, 0x4e, 0x28, 0x72, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x65, 0x2d, - 0x69, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x0a, 0x20, - 0x20, 0x28, 0x75, 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, - 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, - 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, - 0x6f, 0x79, 0x28, 0x72, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x3a, 0x3a, 0x5b, 0x74, 0x5d, - 0x29, 0x0a, 0x7d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x43, - 0x53, 0x65, 0x71, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x74, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x63, 0x73, 0x65, 0x71, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3a, 0x3a, 0x20, 0x74, 0x20, - 0x2d, 0x3e, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x43, 0x53, 0x65, 0x71, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, - 0x73, 0x6d, 0x20, 0x6e, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, - 0x20, 0x20, 0x63, 0x73, 0x65, 0x71, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x73, 0x20, 0x3d, 0x20, 0x73, 0x75, 0x6d, 0x28, 0x74, 0x6f, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x28, 0x66, 0x6c, 0x4d, 0x61, 0x70, 0x28, 0x5c, - 0x6e, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x6e, 0x29, 0x2e, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x2e, 0x74, 0x29, 0x29, 0x29, 0x0a, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, - 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, - 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x20, - 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x6e, - 0x29, 0x20, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x28, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x20, 0x73, 0x20, 0x69, 0x20, 0x20, 0x20, - 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, - 0x61, 0x73, 0x74, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x2e, 0x74, - 0x29, 0x29, 0x2c, 0x20, 0x73, 0x2c, 0x20, 0x69, 0x2c, 0x20, 0x69, 0x2b, - 0x31, 0x4c, 0x29, 0x5b, 0x30, 0x5d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x20, 0x73, 0x20, 0x69, 0x20, 0x3d, 0x20, - 0x6a, 0x75, 0x73, 0x74, 0x28, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, 0x61, - 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x28, 0x75, 0x6e, 0x73, 0x61, - 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, - 0x73, 0x2e, 0x74, 0x29, 0x29, 0x2c, 0x20, 0x73, 0x2c, 0x20, 0x69, 0x2c, - 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x29, 0x5b, 0x30, 0x5d, 0x29, 0x0a, 0x20, - 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x73, 0x20, - 0x69, 0x20, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, + 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x64, 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x75, 0x63, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, + 0x72, 0x6f, 0x79, 0x28, 0x72, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x3a, 0x3a, 0x5b, 0x74, + 0x5d, 0x29, 0x0a, 0x7d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, + 0x43, 0x53, 0x65, 0x71, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x74, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x63, 0x73, 0x65, + 0x71, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3a, 0x3a, 0x20, 0x74, + 0x20, 0x2d, 0x3e, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x43, 0x53, 0x65, 0x71, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, + 0x20, 0x73, 0x6d, 0x20, 0x6e, 0x29, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x0a, 0x20, 0x20, 0x63, 0x73, 0x65, 0x71, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x73, 0x20, 0x3d, 0x20, 0x73, 0x75, 0x6d, 0x28, 0x74, 0x6f, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x66, 0x6c, 0x4d, 0x61, 0x70, 0x28, + 0x5c, 0x6e, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x6e, 0x29, 0x2e, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x2e, 0x74, 0x29, 0x29, 0x29, + 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x55, 0x43, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, + 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, + 0x6e, 0x29, 0x20, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x28, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x20, 0x73, 0x20, 0x69, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, + 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x2e, + 0x74, 0x29, 0x29, 0x2c, 0x20, 0x73, 0x2c, 0x20, 0x69, 0x2c, 0x20, 0x69, + 0x2b, 0x31, 0x4c, 0x29, 0x5b, 0x30, 0x5d, 0x0a, 0x20, 0x20, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x20, 0x73, 0x20, 0x69, 0x20, 0x3d, + 0x20, 0x6a, 0x75, 0x73, 0x74, 0x28, 0x63, 0x73, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x2e, 0x74, 0x29, 0x29, 0x2c, 0x20, 0x73, 0x2c, 0x20, 0x69, - 0x2c, 0x20, 0x65, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x70, 0x75, 0x74, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x0a, 0x75, 0x63, - 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x3a, 0x3a, 0x20, - 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, - 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, 0x68, - 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x5b, 0x74, 0x5d, - 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, - 0x29, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x75, 0x74, 0x4e, - 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x73, 0x20, 0x69, 0x20, 0x3d, - 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x20, 0x3d, 0x3d, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x28, 0x78, 0x73, 0x29, 0x29, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, - 0x65, 0x6c, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x77, 0x2c, - 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x78, 0x73, 0x5b, 0x69, 0x5d, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x72, 0x53, 0x74, 0x65, 0x70, 0x28, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x75, 0x74, 0x4e, - 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x78, 0x73, 0x2c, 0x20, - 0x69, 0x2b, 0x31, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x0a, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x43, 0x53, 0x65, 0x71, 0x50, 0x75, - 0x74, 0x20, 0x73, 0x20, 0x74, 0x20, 0x7c, 0x20, 0x73, 0x20, 0x2d, 0x3e, - 0x20, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x63, - 0x73, 0x65, 0x71, 0x50, 0x75, 0x74, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x73, - 0x2c, 0x20, 0x5b, 0x74, 0x5d, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, 0x29, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x55, - 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, - 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x43, 0x53, 0x65, 0x71, 0x50, - 0x75, 0x74, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, 0x73, - 0x6d, 0x20, 0x6e, 0x29, 0x20, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x0a, 0x20, 0x20, 0x63, 0x73, 0x65, 0x71, 0x50, 0x75, 0x74, 0x20, 0x73, - 0x20, 0x78, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, 0x77, - 0x3d, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x6b, - 0x65, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, - 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x2e, 0x74, 0x29, 0x29, 0x2c, - 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, - 0x73, 0x29, 0x2c, 0x20, 0x63, 0x73, 0x65, 0x71, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x69, 0x7a, 0x65, 0x28, 0x73, 0x29, 0x2c, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x4f, 0x66, 0x3a, 0x3a, 0x28, 0x53, 0x69, 0x7a, 0x65, 0x4f, - 0x66, 0x20, 0x73, 0x6d, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x3b, - 0x20, 0x64, 0x6d, 0x3d, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, - 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, - 0x61, 0x73, 0x74, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x2e, 0x74, - 0x29, 0x29, 0x2c, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, 0x28, - 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, - 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, - 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x75, - 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x75, 0x63, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x44, - 0x61, 0x74, 0x61, 0x28, 0x77, 0x29, 0x29, 0x3a, 0x3a, 0x73, 0x6d, 0x2c, - 0x20, 0x64, 0x6d, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, - 0x50, 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, - 0x78, 0x73, 0x2c, 0x20, 0x30, 0x4c, 0x29, 0x3b, 0x20, 0x28, 0x75, 0x63, - 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x2c, 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x29, 0x5b, 0x30, 0x5d, 0x29, 0x0a, + 0x20, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x73, + 0x20, 0x69, 0x20, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x73, 0x65, 0x71, 0x52, + 0x65, 0x61, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x28, 0x75, 0x6e, + 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x69, 0x6c, + 0x65, 0x28, 0x73, 0x2e, 0x74, 0x29, 0x29, 0x2c, 0x20, 0x73, 0x2c, 0x20, + 0x69, 0x2c, 0x20, 0x65, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x70, 0x75, + 0x74, 0x20, 0x61, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x0a, 0x75, + 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x75, 0x74, 0x4e, 0x20, 0x3a, 0x3a, + 0x20, 0x28, 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, + 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x28, 0x3c, + 0x68, 0x6f, 0x62, 0x62, 0x65, 0x73, 0x2e, 0x55, 0x43, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x72, 0x3e, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x5b, 0x74, + 0x5d, 0x2c, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x3e, 0x20, + 0x28, 0x29, 0x0a, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x75, 0x74, + 0x4e, 0x20, 0x77, 0x20, 0x64, 0x6d, 0x20, 0x78, 0x73, 0x20, 0x69, 0x20, + 0x3d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x20, 0x3d, 0x3d, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x78, 0x73, 0x29, 0x29, 0x20, 0x74, + 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x29, 0x0a, 0x20, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x77, + 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x78, 0x73, 0x5b, 0x69, 0x5d, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x53, 0x74, 0x65, 0x70, 0x28, 0x77, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x75, 0x74, + 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, 0x20, 0x78, 0x73, 0x2c, + 0x20, 0x69, 0x2b, 0x31, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x0a, + 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x43, 0x53, 0x65, 0x71, 0x50, + 0x75, 0x74, 0x20, 0x73, 0x20, 0x74, 0x20, 0x7c, 0x20, 0x73, 0x20, 0x2d, + 0x3e, 0x20, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, + 0x63, 0x73, 0x65, 0x71, 0x50, 0x75, 0x74, 0x20, 0x3a, 0x3a, 0x20, 0x28, + 0x73, 0x2c, 0x20, 0x5b, 0x74, 0x5d, 0x29, 0x20, 0x2d, 0x3e, 0x20, 0x28, + 0x29, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x55, 0x43, 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x20, 0x73, 0x6d, + 0x20, 0x64, 0x6d, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x43, 0x53, 0x65, 0x71, + 0x50, 0x75, 0x74, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, + 0x73, 0x6d, 0x20, 0x6e, 0x29, 0x20, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x0a, 0x20, 0x20, 0x63, 0x73, 0x65, 0x71, 0x50, 0x75, 0x74, 0x20, + 0x73, 0x20, 0x78, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x20, 0x7b, 0x20, + 0x77, 0x3d, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x6b, 0x65, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, + 0x74, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x2e, 0x74, 0x29, 0x29, + 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, + 0x28, 0x73, 0x29, 0x2c, 0x20, 0x63, 0x73, 0x65, 0x71, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x28, 0x73, 0x29, 0x2c, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x4f, 0x66, 0x3a, 0x3a, 0x28, 0x53, 0x69, 0x7a, 0x65, + 0x4f, 0x66, 0x20, 0x73, 0x6d, 0x20, 0x5f, 0x29, 0x3d, 0x3e, 0x5f, 0x29, + 0x3b, 0x20, 0x64, 0x6d, 0x3d, 0x28, 0x75, 0x63, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, + 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, + 0x43, 0x61, 0x73, 0x74, 0x28, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x2e, + 0x74, 0x29, 0x29, 0x2c, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, + 0x28, 0x75, 0x63, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x29, 0x28, - 0x64, 0x6d, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x77, 0x29, 0x3b, - 0x20, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x69, 0x6e, - 0x69, 0x74, 0x43, 0x53, 0x65, 0x71, 0x20, 0x3a, 0x3a, 0x20, 0x28, 0x28, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x31, 0x20, 0x5f, 0x29, 0x29, 0x20, 0x2d, - 0x3e, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, 0x6d, 0x20, - 0x6e, 0x29, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x53, 0x65, 0x71, 0x20, - 0x66, 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, - 0x73, 0x74, 0x28, 0x70, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x28, 0x66, 0x2c, - 0x20, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x28, 0x28, - 0x29, 0x2b, 0x28, 0x6c, 0x6f, 0x6e, 0x67, 0x2a, 0x6c, 0x6f, 0x6e, 0x67, - 0x29, 0x29, 0x29, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x53, 0x65, 0x71, 0x44, 0x65, 0x73, 0x63, 0x20, 0x28, 0x63, 0x73, 0x65, - 0x71, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x20, 0x22, 0x63, 0x73, - 0x65, 0x71, 0x22, 0x20, 0x74, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x4d, 0x61, 0x70, 0x20, 0x66, 0x20, 0x63, 0x20, - 0x61, 0x20, 0x72, 0x20, 0x22, 0x63, 0x73, 0x65, 0x71, 0x22, 0x20, 0x28, - 0x63, 0x73, 0x65, 0x71, 0x20, 0x61, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x20, - 0x22, 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0x20, 0x5b, 0x72, 0x5d, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x6d, 0x61, 0x70, - 0x20, 0x66, 0x20, 0x78, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6d, 0x61, 0x70, + 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, 0x61, 0x73, 0x74, 0x28, 0x75, + 0x63, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x28, 0x77, 0x29, 0x29, 0x3a, 0x3a, 0x73, 0x6d, + 0x2c, 0x20, 0x64, 0x6d, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x52, 0x6f, 0x6f, + 0x74, 0x50, 0x75, 0x74, 0x4e, 0x28, 0x77, 0x2c, 0x20, 0x64, 0x6d, 0x2c, + 0x20, 0x78, 0x73, 0x2c, 0x20, 0x30, 0x4c, 0x29, 0x3b, 0x20, 0x28, 0x75, + 0x63, 0x44, 0x65, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x3a, 0x3a, 0x28, 0x55, 0x43, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, + 0x74, 0x20, 0x73, 0x6d, 0x20, 0x64, 0x6d, 0x29, 0x3d, 0x3e, 0x5f, 0x29, + 0x28, 0x64, 0x6d, 0x29, 0x3b, 0x20, 0x75, 0x63, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x77, 0x29, + 0x3b, 0x20, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x69, + 0x6e, 0x69, 0x74, 0x43, 0x53, 0x65, 0x71, 0x20, 0x3a, 0x3a, 0x20, 0x28, + 0x28, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x31, 0x20, 0x5f, 0x29, 0x29, 0x20, + 0x2d, 0x3e, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x74, 0x20, 0x6d, + 0x20, 0x6e, 0x29, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x53, 0x65, 0x71, + 0x20, 0x66, 0x20, 0x3d, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x43, + 0x61, 0x73, 0x74, 0x28, 0x70, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x28, 0x66, + 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x28, + 0x28, 0x29, 0x2b, 0x28, 0x6c, 0x6f, 0x6e, 0x67, 0x2a, 0x6c, 0x6f, 0x6e, + 0x67, 0x29, 0x29, 0x29, 0x29, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x20, 0x53, 0x65, 0x71, 0x44, 0x65, 0x73, 0x63, 0x20, 0x28, 0x63, 0x73, + 0x65, 0x71, 0x20, 0x74, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x20, 0x22, 0x63, + 0x73, 0x65, 0x71, 0x22, 0x20, 0x74, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x4d, 0x61, 0x70, 0x20, 0x66, 0x20, 0x63, + 0x20, 0x61, 0x20, 0x72, 0x20, 0x22, 0x63, 0x73, 0x65, 0x71, 0x22, 0x20, + 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x61, 0x20, 0x5f, 0x20, 0x5f, 0x29, + 0x20, 0x22, 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0x20, 0x5b, 0x72, 0x5d, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x6d, 0x61, + 0x70, 0x20, 0x66, 0x20, 0x78, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x6d, 0x61, + 0x70, 0x28, 0x66, 0x2c, 0x20, 0x78, 0x73, 0x5b, 0x30, 0x3a, 0x5d, 0x29, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x20, 0x70, 0x20, 0x70, 0x63, + 0x20, 0x66, 0x20, 0x63, 0x20, 0x61, 0x20, 0x72, 0x20, 0x22, 0x63, 0x73, + 0x65, 0x71, 0x22, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x61, 0x20, + 0x5f, 0x20, 0x5f, 0x29, 0x20, 0x22, 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, + 0x20, 0x5b, 0x72, 0x5d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, + 0x20, 0x66, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x20, + 0x70, 0x20, 0x66, 0x20, 0x78, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x28, 0x70, 0x2c, 0x20, 0x66, + 0x2c, 0x20, 0x78, 0x73, 0x5b, 0x30, 0x3a, 0x5d, 0x29, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x4d, 0x61, 0x70, 0x20, 0x66, 0x20, 0x63, 0x20, 0x61, 0x20, + 0x72, 0x20, 0x22, 0x63, 0x73, 0x65, 0x71, 0x22, 0x20, 0x28, 0x63, 0x73, + 0x65, 0x71, 0x20, 0x61, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x20, 0x22, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x22, 0x20, 0x5b, 0x72, 0x5d, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x4d, 0x61, 0x70, 0x20, 0x66, 0x20, 0x78, 0x73, 0x20, 0x3d, + 0x20, 0x66, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x61, 0x70, 0x28, 0x66, 0x2c, 0x20, 0x78, 0x73, 0x5b, 0x30, 0x3a, 0x5d, 0x29, 0x0a, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x20, 0x70, 0x20, 0x70, 0x63, 0x20, - 0x66, 0x20, 0x63, 0x20, 0x61, 0x20, 0x72, 0x20, 0x22, 0x63, 0x73, 0x65, - 0x71, 0x22, 0x20, 0x28, 0x63, 0x73, 0x65, 0x71, 0x20, 0x61, 0x20, 0x5f, - 0x20, 0x5f, 0x29, 0x20, 0x22, 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0x20, - 0x5b, 0x72, 0x5d, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x66, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x20, 0x70, - 0x20, 0x66, 0x20, 0x78, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x28, 0x70, 0x2c, 0x20, 0x66, 0x2c, - 0x20, 0x78, 0x73, 0x5b, 0x30, 0x3a, 0x5d, 0x29, 0x0a, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x4d, 0x61, 0x70, 0x20, 0x66, 0x20, 0x63, 0x20, 0x61, 0x20, 0x72, - 0x20, 0x22, 0x63, 0x73, 0x65, 0x71, 0x22, 0x20, 0x28, 0x63, 0x73, 0x65, - 0x71, 0x20, 0x61, 0x20, 0x5f, 0x20, 0x5f, 0x29, 0x20, 0x22, 0x61, 0x72, - 0x72, 0x61, 0x79, 0x22, 0x20, 0x5b, 0x72, 0x5d, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x4d, 0x61, 0x70, 0x20, 0x66, 0x20, 0x78, 0x73, 0x20, 0x3d, 0x20, - 0x66, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x61, 0x70, 0x28, - 0x66, 0x2c, 0x20, 0x78, 0x73, 0x5b, 0x30, 0x3a, 0x5d, 0x29, 0x0a, 0x0a + 0x0a }; -unsigned int __zstorage_hob_len = 19272; +unsigned int __zstorage_hob_len = 20845; unsigned char* module_defs[] = { __amapping_hob, __arith_hob, diff --git a/lib/hobbes/boot/zstorage.hob b/lib/hobbes/boot/zstorage.hob index d51502adf..0b31e3c41 100644 --- a/lib/hobbes/boot/zstorage.hob +++ b/lib/hobbes/boot/zstorage.hob @@ -105,6 +105,7 @@ instance UCMSized long 8 instance UCMSized int128 16 instance UCMSized float 4 instance UCMSized double 8 +instance UCMSized bool 1 type pcsmodel n = { pmodels:[:(csmodel 256)|n:] } type pdmodel n = [:|n:] @@ -201,6 +202,11 @@ instance (UCModel t tsm tdm) => UCModel [t] ((pcsmodel 8) * tsm) ((pdmodel 8) * ucPrepModel sm dm = do { (ucPrepModel::(UCModel long _ _)=>(_,_)->_)(sm.0, dm.0); (ucPrepModel::(UCModel t _ _)=>(_,_)->_)(sm.1, dm.1); } ucDeallocModel dm = do { (ucDeallocModel::(UCModel long _ _)=>_->_)(dm.0); (ucDeallocModel::(UCModel t _ _)=>_->_)(dm.1); } +instance (UCModel t tsm tdm) => UCModel [:t|n:] ((pcsmodel 8) * tsm) ((pdmodel 8) * tdm) where + ucAllocModel f input = ((ucAllocModel::(UCModel long _ _)=>_)(f,input), (ucAllocModel::(UCModel t _ _)=>_)(f,input)) + ucPrepModel sm dm = do { (ucPrepModel::(UCModel long _ _)=>(_,_)->_)(sm.0, dm.0); (ucPrepModel::(UCModel t _ _)=>(_,_)->_)(sm.1, dm.1); } + ucDeallocModel dm = do { (ucDeallocModel::(UCModel long _ _)=>_->_)(dm.0); (ucDeallocModel::(UCModel t _ _)=>_->_)(dm.1); } + ucTakeNStep :: (UCRead t sm dm) => (, dm, long, [t], long) -> [t] ucTakeNStep r dm n x i = if (ucReaderEOF(r) or i == n) then @@ -218,6 +224,22 @@ ucTakeN r dm n = ucTakeNStep(r, dm, n, newArray(n), 0L) instance (UCModel t tsm tdm) => UCRead [t] ((pcsmodel 8) * tsm) ((pdmodel 8) * tdm) where ucRead r dm = ucTakeN(r, dm.1, (ucRead::(UCRead long _ _)=>(_,_)->_)(r, dm.0)) +ucFTakeNStep :: (UCRead t sm dm) => (, dm, long, [:t|n:], long) -> [:t|n:] +ucFTakeNStep r dm n x i = + if (ucReaderEOF(r) or i == n) then + x + else + do { + saelem(x, i) <- ucRead(r, dm); + return ucFTakeNStep(r, dm, n, x, i+1L) + } + +ucFTakeN :: (UCRead t sm dm) => (, dm, long) -> [:t|n:] +ucFTakeN r dm n = ucFTakeNStep(r, dm, n, newPrim()::[:t|n:], 0L) + +instance (UCModel t tsm tdm) => UCRead [:t|n:] ((pcsmodel 8) * tsm) ((pdmodel 8) * tdm) where + ucRead r dm = ucFTakeN(r, dm.1, (ucRead::(UCRead long _ _)=>(_,_)->_)(r, dm.0)) + ucPutN :: (UCWrite t sm dm) => (, dm, [t], long, long) -> () ucPutN w m xs i e = if (i == e) then @@ -231,6 +253,20 @@ ucPutN w m xs i e = instance (UCModel t tsm tdm) => UCWrite [t] ((pcsmodel 8) * tsm) ((pdmodel 8) * tdm) where ucWrite w dm x = do { (ucWrite::(UCWrite long _ _)=>(_,_,_)->_)(w, dm.0, length(x)); ucPutN(w, dm.1, x, 0L, length(x)); } +ucFPutN :: (UCWrite t sm dm) => (, dm, [:t|n:], long, long) -> () +ucFPutN w m xs i e = + if (i == e) then + () + else do { + (ucWrite::(UCWrite t sm dm)=>(_,_,_)->_)(w, m, saelem(xs,i)); + ucFPutN(w, m, xs, i+1L, e); + } + +instance (UCModel t tsm tdm) => UCWrite [:t|n:] ((pcsmodel 8) * tsm) ((pdmodel 8) * tdm) where + ucWrite w dm x = do {(ucWrite::(UCWrite long _ _)=>(_,_,_)->_)(w, dm.0, salength(x)); ucFPutN(w, dm.1, x, 0L, salength(x)); } + + + // compression models for enumerations (variants with only unit payloads) class UCMEnumCount t b | t -> b instance UCMEnumCount void () diff --git a/test/Storage.C b/test/Storage.C index 425c9916e..15eb50879 100644 --- a/test/Storage.C +++ b/test/Storage.C @@ -111,10 +111,15 @@ TEST(Storage, Create) { } } +typedef char fixarray[8]; + DEFINE_STRUCT(SeriesTest, (int, x), (double, y), - (const array*, z) + (const array*, z), + (bool, b), + (fixarray, v) + ); TEST(Storage, RawSeriesAPI) { @@ -129,6 +134,8 @@ TEST(Storage, RawSeriesAPI) { st.x = i; st.y = 3.14159 * static_cast(i); st.z = makeString("string_" + str::from(i)); + st.b = true; + memcpy(st.v, "12345678", 8); ss(st); } @@ -141,6 +148,9 @@ TEST(Storage, RawSeriesAPI) { st.x = i; st.y = 3.14159 * static_cast(i); st.z = makeString("string_" + str::from(i)); + st.b = true; + memcpy(st.v, "12345678", 8); + ss(st); } EXPECT_TRUE(c().compileFn("[x|{x=x}<-f.series_test][:0] == [0..4]")()); @@ -164,6 +174,8 @@ TEST(Storage, CSeriesAPI) { st.x = i; st.y = 3.14159 * static_cast(i); st.z = makeString("string_" + str::from(i)); + st.b = true; + memcpy(st.v, "12345678", 8); ss(st); } From 937704aae9ffbd2eeb78431e79985faa8fd601f6 Mon Sep 17 00:00:00 2001 From: Dan Wang Date: Tue, 16 Feb 2021 10:35:23 -0500 Subject: [PATCH 2/3] add test caes for compressed type of bool and fix array --- test/Storage.C | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/Storage.C b/test/Storage.C index 15eb50879..933dfd0ea 100644 --- a/test/Storage.C +++ b/test/Storage.C @@ -174,15 +174,16 @@ TEST(Storage, CSeriesAPI) { st.x = i; st.y = 3.14159 * static_cast(i); st.z = makeString("string_" + str::from(i)); - st.b = true; - memcpy(st.v, "12345678", 8); + st.b = i % 2 == 0; + memcpy(st.v, st.z->data, 8); ss(st); } hobbes::cc c; c.define("cf", "inputFile :: (LoadFile \"" + fname + "\" w) => w"); EXPECT_TRUE(c.compileFn("[x|{x=x}<-cf.series_test] == [0..999]")()); - + EXPECT_TRUE(c.compileFn("[b|{b=b}<-cf.series_test][:0] == [x%2==0|{x=x}<-cf.series_test][:0]")()); + EXPECT_TRUE(c.compileFn("[v|{v=v}<-cf.series_test][:0] == [z[0:8]|{z=z}<-cf.series_test][:0]")()); unlink(fname.c_str()); } catch (...) { unlink(fname.c_str()); From 5185f6c1df61da14d9492d54573246ca74ba7cb6 Mon Sep 17 00:00:00 2001 From: dawa79 <44974635+dawa79@users.noreply.github.com> Date: Thu, 24 Oct 2024 18:36:17 +0000 Subject: [PATCH 3/3] fix 128 bit type --- .github/workflows/build.yml | 62 +++++++++++++++++++++++++++++-------- lib/hobbes/eval/func.C | 9 ++++++ 2 files changed, 58 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 597783e4e..52eacf620 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,18 +1,47 @@ name: "Build" -on: [push] +on: [push, pull_request] jobs: + linux-clang-ASanAndUBSan-build: + runs-on: ${{matrix.os}} + strategy: + matrix: + os: [ubuntu-20.04] + clang: [8] + steps: + - uses: actions/checkout@v3 + with: + # Nix Flakes doesn't work on shallow clones + fetch-depth: 0 + - uses: cachix/install-nix-action@v18 + with: + install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install + extra_nix_config: | + experimental-features = nix-command flakes ca-references + - name: nix build hobbesPackages/clang-${{ matrix.clang }}-ASanAndUBSan/hobbes + run: | + nix build .#hobbesPackages/clang-${{ matrix.clang }}-ASanAndUBSan/hobbes + - name: nix log hobbesPackages/clang-${{ matrix.clang }}-ASanAndUBSan/hobbes + if: ${{ always() }} + run: | + nix log .#hobbesPackages/clang-${{ matrix.clang }}-ASanAndUBSan/hobbes &> ${{ matrix.os }}-clang-${{ matrix.clang }}-ASanAndUBSan-hobbes.log + - name: upload log ${{ matrix.os }}-clang-${{ matrix.clang }}-ASanAndUBSan-hobbes.log + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: output-log-file + path: ${{ matrix.os }}-clang-${{ matrix.clang }}-ASanAndUBSan-hobbes.log linux-clang-build: runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-20.04] - clang: [6, 8, 10, 11] + clang: [6, 8, 10, 11, 12] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: # Nix Flakes doesn't work on shallow clones fetch-depth: 0 - - uses: cachix/install-nix-action@v12 + - uses: cachix/install-nix-action@v18 with: install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install extra_nix_config: | @@ -20,9 +49,13 @@ jobs: - name: nix build hobbesPackages/clang-${{ matrix.clang }}/hobbes run: | nix build .#hobbesPackages/clang-${{ matrix.clang }}/hobbes + - name: nix log hobbesPackages/clang-${{ matrix.clang }}/hobbes + if: ${{ always() }} + run: | nix log .#hobbesPackages/clang-${{ matrix.clang }}/hobbes &> ${{ matrix.os }}-clang-${{ matrix.clang }}-hobbes.log - name: upload log ${{ matrix.os }}-clang-${{ matrix.clang }}-hobbes.log - uses: actions/upload-artifact@v1 + if: ${{ always() }} + uses: actions/upload-artifact@v3 with: name: output-log-file path: ${{ matrix.os }}-clang-${{ matrix.clang }}-hobbes.log @@ -32,24 +65,27 @@ jobs: matrix: os: [ubuntu-20.04] gcc: [10] - llvm: [6, 8, 10, 11] + llvm: [6, 8, 10, 11, 12] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: # Nix Flakes doesn't work on shallow clones fetch-depth: 0 - - uses: cachix/install-nix-action@v12 + - uses: cachix/install-nix-action@v18 with: install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install extra_nix_config: | experimental-features = nix-command flakes ca-references - - name: nix build hobbesPackages/clang-${{ matrix.clang }}/hobbes + - name: nix build hobbesPackages/gcc-${{ matrix.gcc }}/llvm-${{ matrix.llvm }}/hobbes run: | nix build .#hobbesPackages/gcc-${{ matrix.gcc }}/llvm-${{ matrix.llvm }}/hobbes + - name: nix log hobbesPackages/gcc-${{ matrix.gcc }}/llvm-${{ matrix.llvm }}/hobbes + if: ${{ always() }} + run: | nix log .#hobbesPackages/gcc-${{ matrix.gcc }}/llvm-${{ matrix.llvm }}/hobbes &> ${{ matrix.os }}-gcc-${{ matrix.gcc }}-llvm-${{ matrix.llvm }}-hobbes.log - - name: upload log ${{ matrix.os }}-gcc-${{ matrix.gcc }}-llvm-${{ matrix.llvm }}-hobbes.log - uses: actions/upload-artifact@v1 + - name: upload log ${{ matrix.os }}-gcc-${{ matrix.gcc }}-llvm-${{ matrix.gitllvm }}-hobbes.log + if: ${{ always() }} + uses: actions/upload-artifact@v3 with: name: output-log-file - path: ${{ matrix.os }}-gcc-${{ matrix.gcc }}-llvm-${{ matrix.llvm }}-hobbes.log - + path: ${{ matrix.os }}-gcc-${{ matrix.gcc }}-llvm-${{ matrix.llvm }}-hobbes.log \ No newline at end of file diff --git a/lib/hobbes/eval/func.C b/lib/hobbes/eval/func.C index 10da22bde..d5b987b93 100644 --- a/lib/hobbes/eval/func.C +++ b/lib/hobbes/eval/func.C @@ -189,6 +189,13 @@ BOP(i16mul, CreateMul, int128_t, int128_t, int128_t); BOP(i16div, CreateSDiv, int128_t, int128_t, int128_t); BOP(i16rem, CreateSRem, int128_t, int128_t, int128_t); +BOP(i16shl, CreateShl, int128_t, int128_t, int128_t); +BOP(i16lshr, CreateLShr, int128_t, int128_t, int128_t); +BOP(i16ashr, CreateAShr, int128_t, int128_t, int128_t); +BOP(i16and, CreateAnd, int128_t, int128_t, int128_t); +BOP(i16or, CreateOr, int128_t, int128_t, int128_t); +BOP(i16xor, CreateXor, int128_t, int128_t, int128_t); + BOP(i16eq, CreateICmpEQ, int128_t, int128_t, bool); BOP(i16neq, CreateICmpNE, int128_t, int128_t, bool); BOP(i16lt, CreateICmpSLT, int128_t, int128_t, bool); @@ -1015,6 +1022,8 @@ void initDefOperators(cc* c) { DEC(iadd); DEC(isub); DEC(imul); DEC(idiv); DEC(irem); DEC(ladd); DEC(lsub); DEC(lmul); DEC(ldiv); DEC(lrem); DEC(i16add); DEC(i16sub); DEC(i16mul); DEC(i16div); DEC(i16rem); + DEC(i16shl); DEC(i16lshr); DEC(i16ashr); DEC(i16and); DEC(i16or);DEC(i16xor); + DEC(fadd); DEC(fsub); DEC(fmul); DEC(fdiv); DEC(dadd); DEC(dsub); DEC(dmul); DEC(ddiv);