ÿÿ€ €€‚Write$£€ÉDECwrite V3.1 <39>¡€ €0€Ô Write$DD_PGR¥€ Šï5`0€Ô Write$DD_PGF0€Ô Write$DD_2S€0€Ô Write$DD_2LF€0€Ô Write$DD_2HOF€0€Ô Write$DD_2FOF€0€Ô Write$DF_PF€0€Ô Write$DF_RM0€Ô Write$DF_CB0€Ô Write$D_TYPE¢€Égenrl0€Ô Write$D_SG_RT0€Ô Write$C_FR¢€ÉFloating Frame0€Ô Write$C_TA¢€ÉTable0€Ô Write$C_L¢€ÉBulleted List0€Ô Write$C_FN¢€É Footnote0€Ô Write$C_PG¢€ÉPage-L0€Ô Write$C_M1¢€ÉPage0€Ô Write$C_P¢€É Paragraph0€Ô Write$C_TR¢€É Textblock0€Ô Write$C_TTL¢€É Table Title0€Ô Write$C_TOC¢€ÉTOC0€ÔWrite$D_TAG_FAV¥€¢€É Paragraph€0€ÔW$HT0€ÔW$HU0€ÔW$HV0€ÔW$HW„19960821112801¥€Ô$STSÔ$LO1Ô$FMTD¦€0€€+ ‡s¡€ÉDDIF‚%cda$library_en_us:wr_genrl.doc_styleƒ$RMS„§€€en_US€en_GB€fr_FR€fr_CA€de_DE€de_CH€sv_SE€es_ES€it_IT€da_DK€nl_NL€pt_PT€no_NO€fi_FI€ja_JP€zh_CN€zh_TW€ko_KR€fr_CH€it_CH€fr_BE€iw_IL en_Medical en_Businessˆ¢€b€£€‚$T¤€0€€$PG¡€0€€$PG.ru¡€£€€0€€$PG.rl¡€£€€0€€$PG.au¡€£€€0€€$PG.al¡€£€€‡©€€ ¡€É centipoints«€ €¡€"€«€0€ €€€¬€0€€åD-ADOBE-ITC Avant Garde Gothic-Book-R-Normal--*-120-*-*-P-*-ISO8859-10€€êD-ADOBE-ITC Avant Garde Gothic-Book-R-Normal--*-140-*-*-P-*-ISO8859-10€€îD-ADOBE-ITC Avant Garde Gothic-Book-R-Normal--*-180-*-*-P-*-ISO8859-10€€â7-ADOBE-Courier-Medium-R-Normal--*-120-*-*-M-*-ISO8859-10€€ì5-ADOBE-Courier-Bold-R-Normal--*-120-*-*-M-*-ISO8859-10€€Ù9-ADOBE-Helvetica-Medium-R-Normal--*-120-*-*-P-*-ISO8859-10€€ß9-ADOBE-Helvetica-Medium-R-Normal--*-140-*-*-P-*-ISO8859-10€€Ü9-ADOBE-Helvetica-Medium-R-Normal--*-180-*-*-P-*-ISO8859-10€€Ú7-ADOBE-Helvetica-Bold-R-Normal--*-120-*-*-P-*-ISO8859-10€€á9-ADOBE-Helvetica-Medium-O-Normal--*-120-*-*-P-*-ISO8859-10€€Þ7-ADOBE-Helvetica-Bold-O-Normal--*-120-*-*-P-*-ISO8859-10€€à7-ADOBE-Helvetica-Bold-O-Normal--*-140-*-*-P-*-ISO8859-10€€Ý7-ADOBE-Helvetica-Bold-O-Normal--*-180-*-*-P-*-ISO8859-10€€æF-ADOBE-New Century Schoolbook-Medium-R-Normal--*-180-*-*-P-*-ISO8859-10€€è;-ADOBE-ITC Souvenir-Light-R-Normal--*-120-*-*-P-*-ISO8859-10€€ç;-ADOBE-ITC Souvenir-Light-R-Normal--*-140-*-*-P-*-ISO8859-10€€Û5-ADOBE-Times-Medium-R-Normal--*-100-*-*-P-*-ISO8859-10€€Ø5-ADOBE-Times-Medium-R-Normal--*-120-*-*-P-*-ISO8859-10€€ã5-ADOBE-Times-Medium-R-Normal--*-140-*-*-P-*-ISO8859-10€€é5-ADOBE-Times-Medium-R-Normal--*-180-*-*-P-*-ISO8859-10€€ä3-ADOBE-Times-Bold-R-Normal--*-140-*-*-P-*-ISO8859-10€€ï5-ADOBE-Times-Medium-I-Normal--*-120-*-*-P-*-ISO8859-10€€ë5-ADOBE-Times-Medium-I-Normal--*-140-*-*-P-*-ISO8859-10€€í3-ADOBE-Times-Bold-I-Normal--*-140-*-*-P-*-ISO8859-1­€0€€e¡€ €€‚¤€0€ÔWrite$ColorName¢€ÉBlack0€€f¡€ €€@@‚@¤€0€ÔWrite$ColorName¢€ÉWhite0€€g¡€ €€@þ‚¤€0€ÔWrite$ColorName¢€ÉRed0€€h¡€ €€@þ‚¤€0€ÔWrite$ColorName¢€ÉGreen0€€i¡€ €€‚@þ¤€0€ÔWrite$ColorName¢€ÉBlue0€€j¡€ €€@þ@þ‚¤€0€ÔWrite$ColorName¢€ÉYellow0€€k¡€ €€@þ‚@þ¤€0€ÔWrite$ColorName¢€ÉCyan0€€l¡€ €€@þ‚@þ¤€0€ÔWrite$ColorName¢€ÉMagenta0€€m¢€€¡€0€€n¢€€¡€0€€o¢€€¡€0€€p¢€€¡€°€0€€Date¢€C 0€€ Footer Text¢€C 0€€ Header Text¢€C ±€0€€Flow¢€¡€Ô$DB‚$T£€Ô$FLOW¤€0€€ $TTL.tab.1¡€€ $TTL.tab.10€€$FN¡€€$FN0€€ $TTL.fig.1¡€€ $TTL.fig.10€€S1¢€£€Ô$S.10€€S2¢€£€Ô$S.20€€S3¢€£€Ô$S.30€€Include List #)¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include List #.¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include List (#)¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include List -¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include List o¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Paragraph Tab-1¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Paragraph Tab-2¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Paragraph Tab-4¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Paragraph Text¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Title Level 1¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Title Level 2¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Title Level 3¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€Include Title Level 4¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€0€ €€D0€ €€,ˆ0€ €€BÌ0€ €€Y0€ €€oT0€ €€…˜0€ €€›Ü0€ €€² 0€ €€Èd0€ €€Þ¨0€ €€ôì0€ €€ 00€ €€!t0€ €€7¸0€ €€Mü²€€eØ¢€£€€°¦€É.0€€ Paragraph¢€£€Ô$P«€ € €!€€‚ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€Xª€¡€€È«€²€€eØ¢€£€€°¦€É.0€€ SYCO$ParText¢€£€Ô$P«€ € €!€€‚€ƒ„…¡€"€‚„¥€€¦€€§€€¨€€©€€ª€¡€€«€²€€e⢀£€€°¦€É.¤€€¡€0€€Page-L¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMÿ0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FIT€£€€Page-L¡€ € €€ï¡€ €€5`‚¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€5`¡€€ï£€ €€€ï€€€5`€€5`€ï¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€¢€€ £€€ #€$€€ GLY$Page-L.1¡€ € €€ ¡€€ ¡€ €€@¡€€Òðƒ$¤€Ô$DBÔ$RL… GLY$Page-L.1Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.WBDGPDJG³€ €€dµ€%€ €€ ¡€€¢€€ £€€ #€$€€GLY$Page-L.hdr.1¡€ € €€¡€€×®¡€ €€ß–¡€€äVƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.WDBGPDJG³€ €€dµ€%€ €€ ¡€€¢€€ £€€ #€$€€GLY$Page-L.ftr.1¡€ € €€㹡€€Ï¡€ €€@¡€€ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.WBDGPDJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page-L.trim.1¡€ € €€áy¡€€×°¡€ €€÷¡€€äVƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.WDBGPDJG³€ €€dµ€%€ €€ ¡€€¢€€ £€€ #€$€€GLY$Page-L.trim.2¡€ € €€ ¡€€Ï¡€ €€âò¡€€ƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€‚$T«€ €¡€"€ GLY$Page-L.1Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page-L.hdr.1b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page-L.ftr.1b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGAIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page-L.trim.1b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page-L.trim.2b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAA¥€ € €€0¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€0¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-1¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-1¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-1¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-1¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-1b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-1b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC1AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-1b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-1b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WKTMPDJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$WDKKJDJGAA €€1¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€1¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-2¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-2¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-2¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-2¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-2b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-2b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC2AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-2b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-2b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WDKKJDJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$WGGMPDJGAA €€2¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€2¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-3¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-3¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-3¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-3¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-3b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-3b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC3AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-3b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-3b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WGGMPDJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$WGXTPDJGAA €€3¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€3¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-4¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-4¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-4¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-4¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-4b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-4b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC4AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-4b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-4b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WGXTPDJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$WDXMPDJGAA €€4¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€4¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-5¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-5¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-5¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-5¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-5b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-5b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC5AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-5b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-5b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WDXMPDJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XTJMMJJGAA €€5¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€5¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-6¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-6¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-6¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-6¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-6b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-6b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC6AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-6b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-6b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XTJMMJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XXMXKDJGAA €€6¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€6¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-7¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-7¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-7¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-7¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-7b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-7b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC7AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-7b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-7b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XXMXKDJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XJTMMJJGAA €€7¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€7¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-8¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-8¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-8¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-8¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-8b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-8b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC8AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-8b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-8b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XJTMMJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XWGKKDJGAA €€8¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM 0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€8¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-9¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-9¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-9¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-9¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-9b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-9b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC9AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-9b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-9b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XWGKKDJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MMMDGJJGAb€£€³€ €€d‰l€€Š¢€€1 €Z«€© €Z«€© €Lp€1 €LpAb€£€‚$2D‡«€¡€ € €€3€S€wz€S²€س€‰COp1IC$ Op2 Op3 Op4 Op5IAb€£€‚$2D‡«€¡€ € €€¯ €V,€Ã’€V,²€س€‰C Base ClassAb€£€³€ €€d‰l€€Š¢€€1 €r£€©à€r£€©à€ai€1 €aiAb€£€‚$2D‡«€¡€ € €€A@€jÅ€IR€jŲ€س€‰COp2Ab€£€‚$2D‡«€¡€ € €€_@€jf€vl€jf²€س€‰C Op4 Op5Ab€£€‚$2D‡«€¡€ € €€®`€h†€¼P€h†²€س€‰CChild 1Ab€£€³€ €€d‰l€€Š¢€€1à€‹º€ª €‹º€ª €z €1à€z Ab€£€‚$2D‡«€¡€ € €€¯à€>€½Ð€>²€س€‰CChild 2Ab€£€‚$2D‡«€¡€ € €€@ €ý€H2€ý²€س€‰COp2Ab€£€‚$2D‡«€¡€ € €€1€€¤r€¦'€¤r²€㣀€x³€‰C2Invoking Child 2, Op1 and Op3 are performed by theAb€£€‚$2D‡«€¡€ € €€1€€µ€ª·€µ²€㣀€x³€‰C5base class, Op4 and Op5 are performed by Child 1, andAb€£€‚$2D‡«€¡€ € €€1€€–ø€q耖ø²€㣀€x³€‰COp2 is performed by Child 2.Ab€£€‚$2D‡«€¡€ € €€N`€±-€p¬€±-²€ꣀ€x³€‰C INHERITANCEAb€£€³€ €€d„…‰l€¢€€Cà€z €Cà€sbAb€£€³€ €€d„…‰l€¢€€a €yÀ€a €r£Ab€£€³€ €€d„…‰l€¢€€q €z €q €sAb€£€³€ €€d„…‰l€¢€€R €z€€R €sÂAb€£€³€ €€d„…‰l€¢€€6À€zà€6À€sÂAb€£€³€ €€d„…‰l€¢€€6€ai€6`€[kAb€£€³€ €€d„…‰l€¢€€D@€ai€D@€\*Ab€£€³€ €€d„…‰l€¢€€Rà€ai€R€€[kAb€£€³€ €€d„…‰l€¢€€b@€aÈ€b@€[kAb€£€³€ €€d„…‰l€¢€€r€aÈ€r€\*AA €€9¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM 0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€9¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-10¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-10¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-10¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-10¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-10b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-10b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC10AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-10b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-10b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MMMDGJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MTXTGJJGAA €€10¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM 0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€10¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-11¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-11¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-11¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-11¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-11b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-11b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC11AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-11b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-11b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MTXTGJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MMBTTJJGAA €€11¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM 0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€11¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-12¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-12¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-12¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-12¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-12b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-12b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC12AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-12b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-12b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MMBTTJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MJGJTJJGAA €€12¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM 0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€12¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-13¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-13¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-13¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-13¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-13b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-13b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC13AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-13b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-13b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MJGJTJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MXKGTJJGAA €€13¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€13¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-14¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-14¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-14¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-14¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-14b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-14b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC14AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-14b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-14b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MXKGTJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MTDJTJJGAA €€14¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€14¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-15¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-15¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-15¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-15¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-15b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-15b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC15AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-15b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-15b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MTDJTJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MXBDTJJGAA €€15¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€15¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-16¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-16¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-16¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-16¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-16b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-16b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC16AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-16b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-16b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MXBDTJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MMPJTJJGAA €€16¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€16¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-17¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-17¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-17¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-17¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-17b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-17b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC17AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-17b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-17b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MMPJTJJG¡€ € €€á¡€€¡€ €€ѱ¡€€/ƒ ¤€Ô$DBÔ$RL† GLY$MWMDTJJGAA €€17¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€17¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-18¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-18¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-18¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-18¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-18b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-18b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC18AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-18b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-18b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MWMDTJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MMMTPJJGAb€£€³€ €€d‰l€€Š¢€€QÀ€ €  € €  €ßý€QÀ€ßýAb€£€‚$2D‡«€¡€ € €€U € ¯€i€ ¯²€Ù³€‰CClass Driver Start I/OAb€£€‚$2D‡«€¡€ € €€U €ÿs€ª€ÿs²€Ù³€‰CManage Flow ControlAb€£€‚$2D‡«€¡€ € €€U €ô7€€€ô7²€Ù³€‰CStart Kernel ProcessAb€£€³€ €€d‰l€€Š¢€€&@€—¶€E€—¶€E€†|€&@€†|Ab€£€³€ €€d‰l€€Š¢€€Là€—¶€l`€—¶€l`€†|€Là€†|Ab€£€³€ €€d‰l€€Š¢€€q@€˜v€’@€˜v€’@€†Ü€q@€†ÜAb€£€³€ €€d‰l€€Š¢€€š€€˜v€½€˜v€½€†Ü€š€€†ÜAb€£€³€ €€d‰l€€Š¢€€& €>€E€>€E€qƒ€& €qƒAb€£€³€ €€d‰l€€Š¢€€M@€ž€l`€ž€l`€qƒ€M@€qƒAb€£€³€ €€d‰l€€Š¢€€q €ý€’ €ý€’ €qƒ€q €qƒAb€£€³€ €€d‰l€€Š¢€€šà€ý€¾ €ý€¾ €q#€šà€q#Ab€£€³€ €€d‰l€€Š¢€€'`€kå€E€kå€E€\Š€'`€\ŠAb€£€³€ €€d‰l€€Š¢€€a €ÁG€Žà€ÁG€Žà€° €a €° Ab€£€³€ €€d‰l€€Š¢€€a€€×`€`€×`€`€ÄG€a€€ÄGAb€£€‚$2D‡«€¡€ € €€e@€Ñb€zÞ€Ñb²€Ù³€‰C DetermineAb€£€‚$2D‡«€¡€ € €€e@€ËÄ€€€ËIJ€Ù³€‰C CommandedAb€£€‚$2D‡«€¡€ € €€e@€Æ&€w9€Æ&²€Ù³€‰CFunctionAb€£€‚$2D‡«€¡€ € €€d €»ª€‰¢€»ª²€Ù³€‰CSelect ProcessingAb€£€‚$2D‡«€¡€ € €€d €¶ €r§€¶ ²€Ù³€‰C"Level"Ab€£€³€ €€d„…‰l€¢€€u€à]€u€Ø€Ab€£€³€ €€d„…‰l€¢€€u€ÄG€u€Á¨Ab€£€‚$2D‡«€¡€ € €€(€€›€>b€›²€Ù³€‰C Function 1Ab€£€‚$2D‡«€¡€ € €€N`€šU€dB€šU²€Ù³€‰C Function 2Ab€£€‚$2D‡«€¡€ € €€r`€›u€ˆB€›u²€Ù³€‰C Function 3Ab€£€‚$2D‡«€¡€ € €€œ`€›Õ€²B€›Õ²€Ù³€‰C Function nAb€£€‚$2D‡«€¡€ € €€’ €œ5€–Š€œ5²€Ù³€‰C...Ab€£€‚$2D‡«€¡€ € €€(€€’€7œ€’²€Ù³€‰CLevel 1Ab€£€‚$2D‡«€¡€ € €€(à€z€€7ü€z€²€Ù³€‰CLevel 2Ab€£€‚$2D‡«€¡€ € €€*`€fG€:É€fG²€Ù³€‰CLevel mAb€£€‚$2D‡«€¡€ € €€*`€mÄ€.J€mIJ€Ù³€‰C...Ab€£€‚$2D‡«€¡€ € €€Oà€’Ø€^ü€’ز€Ù³€‰CLevel 1Ab€£€‚$2D‡«€¡€ € €€t@€’x€ƒ\€’x²€Ù³€‰CLevel 1Ab€£€‚$2D‡«€¡€ € €€œ`€’Ø€«|€’ز€Ù³€‰CLevel 1Ab€£€‚$2D‡«€¡€ € €€O €z€€^<€z€²€Ù³€‰CLevel 2Ab€£€‚$2D‡«€¡€ € €€t@€|€ƒ\€|²€Ù³€‰CLevel 2Ab€£€‚$2D‡«€¡€ € €€€€{@€¬œ€{@²€Ù³€‰CLevel 2Ab€£€³€ €€d„…‰l€¢€€u`€°n€sà€¬¯€r`€«/€p€€ª€n@€¨ð€k@€§Ñ€h@€¥ñ€dà€¤Ò€``€£R€]`€¢ò€[ €¢2€Xà€¢2€U€€¡s€QÀ€ ³€NÀ€Ÿ“€K€T€HÀ€›€G@€™•€EÀ€—¶€E€”·€F €‘X€G@€ù€HÀ€Šú€I€€†Ü€HÀ€„€HÀ€ž€HÀ€^€H€}€F €|¿Ab€£€³€ €€d„…‰l€€Š¢€€V@€S퀎 €S퀎 €<µ€V@€<µAb€£€‚$2D‡«€¡€ € €€Y@€L€x>€L²€Ù³€‰C Common classAb€£€‚$2D‡«€¡€ € €€Y@€Fr€¡€Fr²€Ù³€‰Cfunction completionAb€£€³€ €€d„…‰l€¢€€T€b(€Uà€`©€]`€Y‹€_@€WL€`À€UmAb€£€³€ €€d„…‰l€¢€€k €dÇ€k@€aÈ€k@€_)€k@€\ê€k@€Z«€k@€Xl€k@€V,Ab€£€³€ €€d„…‰l€¢€€}@€d€{`€a €z@€]ª€y €[ €x€Y+€w@€WL€v€€UmAb€£€³€ €€d„…‰l€¢€€€b耀]J€‹ €[k€‰@€Y+€ˆ €V쀆 €U Ab€£€‚$2D‡«€¡€ € €€D@€+€™ð€+²€ߣ€€x³€‰C#Detail of Function Level ProcessingAb€£€‚$2D‡«€¡€ € €€D@€$¾€‡´€$¾²€ߣ€€x³€‰C (Boxes are routines)Ab€£€‚$2D‡«€¡€ € €€w €Ɔ€„é€Ɔ²€Ù³€‰C..pick jAb€£€‚$2D‡«€¡€ € €€t €¶Ë€„…€¶Ë²€Ù³€‰C ...pick kAb€£€‚$2D‡«€¡€ € €€và€§Ñ€°¶€§Ñ²€Ù³€‰CSelect function j, level k boxAb€£€³€ €€d‰l€€Š¢€€Äà€K€Ñ €K€Ñ €7v€Äà€7vAb€£€‚$2D‡«€¡€ € €€Çà€ ï€ËB€ ï²€Ù³€‰CCAb€£€‚$2D‡«€¡€ € €€Çà€þ³€ˆ€þ³²€Ù³€‰COAb€£€‚$2D‡«€¡€ € €€Çà€ów€ËÈ€ów²€Ù³€‰CMAb€£€‚$2D‡«€¡€ € €€Çà€è;€ËÈ€è;²€Ù³€‰CMAb€£€‚$2D‡«€¡€ € €€Çà€Üÿ€ˆ€Üÿ²€Ù³€‰COAb€£€‚$2D‡«€¡€ € €€Çà€ÑÀËB€Ñò€Ù³€‰CNAb€£€‚$2D‡«€¡€ € €€Çà€µ­€ËB€µ­²€Ù³€‰CCAb€£€‚$2D‡«€¡€ € €€Çà€ªq€ˆ€ªq²€Ù³€‰COAb€£€‚$2D‡«€¡€ € €€Çà€Ÿ5€ËB€Ÿ5²€Ù³€‰CDAb€£€‚$2D‡«€¡€ € €€Çà€“ù€Ë€“ù²€Ù³€‰CEAA €€18¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€18¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-19¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-19¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-19¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-19¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-19b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-19b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC19AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-19b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-19b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MMMTPJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MTXGPJJGAA €€19¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€19¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-20¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-20¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-20¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-20¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-20b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-20b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC20AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-20b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-20b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MTXGPJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TBTPWJJGAb€£€³€ €€d‰l€€Š¢€€( €-€Là€-€Là€úô€( €úôAb€£€‚$2D‡«€¡€ € €€*`€ /€:€ /²€س€‰COriginalAb€£€‚$2D‡«€¡€ € €€*`€‘€99€‘²€س€‰CRoutineAb€£€³€ €€d„…‰l€¢€€5@€úô€5 €÷õ€7€€ö€9`€öÖ€; €÷•€= €ö€= €ó×Ab€£€³€ €€d„…‰l€€Š¢€€'À€ñ8€N€ñ8€N€ÞÞ€'À€ÞÞAb€£€‚$2D‡«€¡€ € €€*À€뙀9ü€뙲€س€‰CCopy ofAb€£€‚$2D‡«€¡€ € €€*À€åû€Jf€åû²€س€‰COriginal RoutineAb€£€³€ €€d„…‰l€€Š¢€€À€ N€¨€ N€¨€ùu€À€ùuAb€£€³€ €€d„…‰l€€Š¢€€€ €ïX€§ €ïX€§ €Ù@€€ €Ù@Ab€£€‚$2D‡«€¡€ € €€„€ð€”Í€ð²€س€‰C Original Ab€£€‚$2D‡«€¡€ € €€„€R€’Ù€R²€س€‰CRoutineAb€£€‚$2D‡«€¡€ € €€ƒ@€ê€šÒ€ê²€س€‰C Edited CopyAb€£€‚$2D‡«€¡€ € €€ƒ@€ä|€‡(€ä|²€س€‰CofAb€£€‚$2D‡«€¡€ € €€ƒ €ÞÞ€”m€ÞÞ²€س€‰C Original Ab€£€‚$2D‡«€¡€ € €€Š`€äÜ€š€äܲ€س€‰COriginalAb€£€‚$2D‡«€¡€ € €€ƒ €ß>€”ò€ß>²€㣀€x³€‰CRoutineAb€£€³€ €€d„…‰l€¢€€à€ €º`€Ù@Ab€£€³€ €€d„…‰l€¢€€½`€L€*€Ò‚Ab€£€³€ €€d„…‰l€€Š¢€€)@€Ç€N`€Ç€N`€­o€)@€­oAb€£€‚$2D‡«€¡€ € €€/@€½‰€Az€½‰²€㣀€x³€‰COriginalAb€£€‚$2D‡«€¡€ € €€/@€¶Ì€@’€¶Ì²€㣀€x³€‰CRoutineAb€£€³€ €€d„…‰l€€Š¢€€} €ÂÇ€§@€ÂÇ€§@€¬O€} €¬OAb€£€³€ €€d„…‰l€€Š¢€€}@€¦±€§@€¦±€§@€™õ€}@€™õAb€£€³€ €€d„…‰l€€Š¢€€ €”W€¨À€”W€¨À€†€ €†Ab€£€‚$2D‡«€¡€ € €€€@€¼É€ŸÙ€¼É²€㣀€x³€‰C Common, Un-Ab€£€‚$2D‡«€¡€ € €€€@€¶ €Ÿ²€¶ ²€㣀€x³€‰C Changed partsAb€£€‚$2D‡«€¡€ € €€€@€¯O€™(€¯O²€㣀€x³€‰C of orig. rtn.Ab€£€‚$2D‡«€¡€ € €€€€¢2€¢"€¢2²€㣀€x³€‰CRest of orig. rtnAb€£€‚$2D‡«€¡€ € €€€€€©G€²€㣀€x³€‰CMods to make newAb€£€‚$2D‡«€¡€ € €€€€ˆ\€Žþ€ˆ\²€㣀€x³€‰CroutineAb€£€‚$2D‡«€¡€ € €€W`€Øà€hÙ€Øà²€㣀€x³€‰CNot thisAb€£€‚$2D‡«€¡€ € €€W€–7€`¹€–7²€㣀€x³€‰CThisAb€£€³€ €€d„…‰l€¢€€M@€ЀO€€0€QÀ€€T€€V@€ð€X€€P€ZÀ€P€]€P€_ €P€aà€P€d €P€f`€P€h €P€j€€€l`€Ѐn €q€pà€€s €€u`€±€w €Q€z@€Q€|€€ñ€~À€‘€€ €ÑAb€£€³€ €€d„…‰l€¢€€N€蚀Q`€è;€S €è;€Uà€è;€X €è;€Z`€çÛ€\ €çÛ€^à€ç{€aà€滀d €æ[€f`€æ[€h €åû€k@€æ[€m€€滀oÀ€ç€r€ç€t@€ç€v€€æ[€xÀ€åû€{€å<€}@€äÜAb€£€³€ €€d„…‰l€¢€€N`€¹Ê€QÀ€¹k€T€¹Ê€V@€¹Ê€X€€¹Ê€ZÀ€¹Ê€]€¹Ê€`€¹Ê€b €º*€e@€¹Ê€gà€¹Ê€j €¹Ê€l`€¹ €n €¹ €pà€¸«€s €¸K€u`€¸K€w €¸«€y€€¹k€{À€¹ÊAb€£€³€ €€d„…‰l€¢€€gà€¹k€j €¹k€k@€·‹€l€µ¬€m€€´,€n €²M€n €°€o`€®.€p €¬O€pà€ªp€q €¨€r`€¦±€rÀ€¤r€s €¢2€sà€ S€uÀ€Ÿ“€x€ S€yà€¡€| €¡Ab€£€³€ €€d„…‰l€¢€€©à€¸K€¬€€·+€®`€¶l€° €µ¬€²à€µL€µ €´Œ€·`€´,€¹ €³Ì€»à€³mAb€£€³€ €€d„…‰l€¢€€©à€ S€¬€€¢2€®`€£²€°@€¥‘€²€€§q€´€©°€µ€€«ï€·`€­o€¸€€¯N€º€°ÍAb€£€³€ €€d„…‰l€¢€€¨À€¶l€«€´ì€¬€€³ €¯ €¯®€°@€­o€±À€«/€²à€¨ð€´`€¦±€µ€€¤r€·€¢ò€¸ €¡€¹@€Ÿ3€ºÀ€T€¼@€›Õ€½`€™õ€¾à€—¶€À€•×€ÀÀ€“÷€Â@€’xAb€£€³€ €€d„…‰l€¢€€ª €ù€­ €޹€°@€޹€²€€y€´`€9€¶@€ø€¸€€‘X€» €‘X€½`€‘XAb€£€‚$2D‡«€¡€ € €€À€±-€Ê€±-²€㣀€x³€‰COrigAb€£€‚$2D‡«€¡€ € €€ÃÀ€޹€Î€޹²€㣀€x³€‰CNewAA €€20¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€20¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-21¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-21¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-21¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-21¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-21b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-21b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC21AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-21b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-21b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TBTPWJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TGBWWJJGAA €€21¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€21¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-22¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-22¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-22¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-22¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-22b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-22b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC22AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-22b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-22b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TGBWWJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TKGJWJJGAA €€22¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€22¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-23¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-23¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-23¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-23¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-23b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-23b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC23AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-23b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-23b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TKGJWJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TDPWWJJGAA €€23¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€23¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-24¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-24¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-24¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-24¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-24b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-24b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC24AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-24b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-24b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TDPWWJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TPJPWJJGAA €€24¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€24¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-25¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-25¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-25¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-25¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-25b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-25b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC25AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-25b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-25b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TPJPWJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TBBDBJJGAb€£€³€ €€d„…‰l€€Š¢€€!`€ˆ[€a €ˆ[€a €J1€!`€J1Ab€£€³€ €€d‰l€¢€€!`€s€a €sÂAb€£€‚$2D‡«€¡€ € €€$€‚]€?€‚]²€å³€‰C SCDRP dataAb€£€­€0€€q¢€€¡€fh³€ €€dƒ$‰ql€€À¢€€!`€X €b €X Ab€£€‚$2D‡«€¡€ € €€'€kå€Q"€k岀峀‰CCMD buffer regionAb€£€­€0€€r¢€€¡€fh³€ €€dƒ$„…‰rl€€À¢€€x`€kå€``€kåAb€£€­€0€€s¢€€¡€fh³€ €€dƒ$„…‰sl€€À¢€€x`€lE€b@€k…Ab€£€‚$2D‡«€¡€ € €€`€jÅ€ѽ€jŲ€ꣀ€x³€‰CPort driver says start CMD hereAb€£€­€0€€t¢€€¡€fh³€ €€dƒ$„…‰tl€€À¢€€a €lE€!À€lEAb€£€­€0€€u¢€€¡€fh³€ €€dƒ$‰ul€€À¢€€!`€aÈ€a€€aÈAb€£€‚$2D‡«€¡€ € €€%à€e'€W¼€e'²€ꣀ€x³€‰CActual CMD bufferAb€£€‚$2D‡«€¡€ € €€n@€ZK€¿©€ZK²€ꣀ€x³€‰CEmbedding of CMD buffer intoAb€£€‚$2D‡«€¡€ € €€n@€S˜€Sî²€ꣀ€x³€‰C SCDRPAA €€25¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€25¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-26¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-26¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-26¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-26¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-26b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-26b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC26AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-26b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-26b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TBBDBJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TGTPBJJGAA €€26¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€26¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-27¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-27¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-27¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-27¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-27b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-27b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC27AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-27b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-27b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TGTPBJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TKJJBJJGAA €€27¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€27¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-28¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-28¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-28¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-28¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-28b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-28b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC28AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-28b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-28b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TKJJBJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TPXJBJJGAA €€28¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€28¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-29¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-29¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-29¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-29¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-29b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-29b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC29AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-29b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-29b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TPXJBJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TKWTBJJGAA €€29¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€29¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-30¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-30¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-30¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-30¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-30b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-30b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC30AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-30b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-30b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TKWTBJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$TDGJBJJGAA €€30¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€30¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-31¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-31¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-31¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-31¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-31b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-31b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC31AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-31b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-31b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$TDGJBJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XTPGXJJGAA €€31¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM 0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€31¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-32¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-32¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-32¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-32¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-32b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-32b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC32AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-32b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-32b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XTPGXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XWKTXJJGAA €€32¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM!0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€32¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-33¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-33¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-33¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-33¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-33b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-33b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC33AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-33b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-33b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XWKTXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XWGGXJJGAA €€33¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM"0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€33¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-34¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-34¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-34¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-34¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-34b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-34b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC34AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-34b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-34b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XWGGXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XJPKBJJGAA €€34¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM#0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€34¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-35¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-35¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-35¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-35¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-35b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-35b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC35AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-35b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-35b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XJPKBJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XJGDXJJGAA €€35¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM$0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€35¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-36¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-36¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-36¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-36¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-36b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-36b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC36AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-36b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-36b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XJGDXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XJJMXJJGAA €€36¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM%0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€36¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-37¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-37¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-37¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-37¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-37b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-37b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC37AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-37b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-37b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XJJMXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XXMMXJJGAA €€37¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM&0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€37¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-38¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-38¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-38¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-38¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-38b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-38b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC38AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-38b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-38b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XXMMXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JXTKXJJGAA €€38¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM'0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€38¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-39¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-39¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-39¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-39¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-39b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-39b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC39AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-39b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-39b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JXTKXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JTBMKJJGAA €€39¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM(0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€39¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-40¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-40¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-40¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-40¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-40b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-40b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC40AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-40b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-40b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JTBMKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JWPXXJJGAA €€40¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM)0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€40¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-41¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-41¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-41¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-41¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-41b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-41b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC41AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-41b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-41b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JWPXXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JMKMKJJGAA €€41¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM*0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€41¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-42¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-42¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-42¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-42¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-42b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-42b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC42AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-42b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-42b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JMKMKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JWDMKJJGAA €€42¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM+0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€42¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-43¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-43¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-43¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-43¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-43b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-43b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC43AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-43b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-43b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JWDMKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JXMGKJJGAA €€43¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM,0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€43¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-44¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-44¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-44¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-44¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-44b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-44b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC44AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-44b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-44b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JXMGKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JJWKXJJGAA €€44¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM-0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€44¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-45¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-45¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-45¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-45¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-45b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-45b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC45AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-45b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-45b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JJWKXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JMTXXJJGAA €€45¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM.0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€45¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-46¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-46¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-46¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-46¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-46b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-46b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC46AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-46b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-46b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JMTXXJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MMGJKJJGAA €€46¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM/0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€46¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-47¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-47¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-47¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-47¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-47b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-47b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC47AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-47b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-47b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MMGJKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MWBGKJJGAA €€47¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM00€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€47¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-48¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-48¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-48¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-48¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-48b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-48b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC48AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-48b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-48b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MWBGKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MTKDKJJGAA €€48¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM10€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€48¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-49¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-49¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-49¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-49¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-49b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-49b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC49AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-49b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-49b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MTKDKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MJXTKJJGAA €€49¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM20€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€49¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-50¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-50¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-50¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-50¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-50b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-50b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC50AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-50b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-50b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MJXTKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MXDDKJJGAA €€50¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM30€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€50¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-51¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-51¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-51¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-51¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-51b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-51b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC51AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-51b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-51b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MXDDKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MWJJKJJGAA €€51¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM40€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€51¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-52¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-52¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-52¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-52¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-52b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-52b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC52AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-52b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-52b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MWJJKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MXJTKJJGAA €€52¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM50€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€52¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-53¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-53¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-53¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-53¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-53b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-53b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC53AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-53b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-53b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MXJTKJJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XXWKMPJGAA €€53¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM60€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€53¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-54¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-54¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-54¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-54¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-54b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-54b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC54AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-54b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-54b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XXWKMPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XTGGGPJGAA €€54¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM70€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€54¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-55¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-55¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-55¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-55¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-55b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-55b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC55AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-55b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-55b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XTGGGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XTDKMPJGAA €€55¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM80€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€55¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-56¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-56¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-56¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-56¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-56b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-56b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC56AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-56b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-56b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XTDKMPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XMBBMPJGAA €€56¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM90€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€56¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-57¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-57¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-57¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-57¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-57b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-57b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC57AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-57b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-57b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XMBBMPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XMDGGPJGAA €€57¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM:0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€57¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-58¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-58¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-58¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-58¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-58b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-58b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC58AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-58b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-58b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XMDGGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XMWXMPJGAA €€58¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM;0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€58¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-59¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-59¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-59¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-59¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-59b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-59b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC59AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-59b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-59b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XMWXMPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$XJTXMPJGAA €€59¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM<0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€59¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-60¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-60¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-60¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-60¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-60b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-60b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC60AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-60b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-60b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$XJTXMPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JJJBGPJGAA €€60¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM=0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€60¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-61¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-61¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-61¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-61¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-61b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-61b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC61AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-61b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-61b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JJJBGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JXXXGPJGAA €€61¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM>0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€61¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-62¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-62¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-62¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-62¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-62b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-62b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC62AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-62b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-62b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JXXXGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JTBWGPJGAA €€62¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM?0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€62¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-63¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-63¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-63¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-63¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-63b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-63b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC63AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-63b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-63b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JTBWGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JWMKGPJGAA €€63¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUM@0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€63¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-64¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-64¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-64¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-64¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-64b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-64b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC64AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-64b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-64b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JWMKGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JTPXGPJGAA €€64¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMA0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€64¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-65¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-65¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-65¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-65¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-65b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-65b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC65AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-65b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-65b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JTPXGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JJTKGPJGAA €€65¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMB0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€65¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-66¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-66¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-66¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-66¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-66b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-66b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC66AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-66b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-66b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JJTKGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JMXBGPJGAA €€66¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMC0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€66¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-67¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-67¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-67¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-67¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-67b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-67b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC67AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-67b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-67b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JMXBGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$JWDWGPJGAA €€67¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMD0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€67¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-68¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-68¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-68¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-68¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-68b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-68b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC68AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-68b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-68b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$JWDWGPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MMGWTPJGAA €€68¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUME0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€68¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-69¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-69¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-69¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-69¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-69b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-69b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC69AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-69b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-69b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MMGWTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MWBDTPJGAA €€69¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMF0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€69¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-70¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-70¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-70¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-70¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-70b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-70b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC70AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-70b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-70b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MWBDTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MTKPTPJGAA €€70¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMG0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€70¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-71¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-71¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-71¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-71¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-71b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-71b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC71AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-71b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-71b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MTKPTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MJXJTPJGAA €€71¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMH0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€71¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-72¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-72¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-72¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-72¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-72b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-72b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC72AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-72b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-72b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MJXJTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MXDPTPJGAA €€72¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMI0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€72¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-73¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-73¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-73¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-73¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-73b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-73b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC73AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-73b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-73b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MXDPTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MWJWTPJGAA €€73¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMJ0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€73¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-74¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-74¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-74¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-74¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-74b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-74b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC74AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-74b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-74b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MWJWTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$MXJJTPJGAA €€74¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMK0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€74¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-75¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-75¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-75¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-75¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-75b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-75b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC75AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-75b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-75b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$MXJJTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$WPWKTPJGAA €€75¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUML0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€75¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-76¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-76¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-76¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-76¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-76b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-76b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC76AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-76b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-76b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WPWKTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$WKMGDPJGAA €€76¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMM0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€76¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-77¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-77¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-77¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-77¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-77b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-77b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC77AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-77b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-77b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WKMGDPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL† GLY$WKTKTPJGAA €€77¡€0€Ô Write$PG_FMT¢€É#0€ÔWrite$PG_PTFMT¢€É.#0€Ô Write$PG_CB¥€èd0€Ô Write$PG_TRT¢€É Textblock0€Ô Write$PG_NUMN0€ÔWrite$PG_POINT0€Ô Write$PG_NSTY0€Ô Write$PG_PSTY0€Ô Write$PG_MG¥€      0€Ô Write$PG_FN¥€È0€Ô Write$PG_FR€£€€77¡€ € €€ï¡€ €€5`ƒPage¤€b€£€‚$2D£€Ô$F³€ €€„…‡‰·€€¡€ € €€¡€€¡€ €€ï¡€€5`£€ €€€5`€€€ï€€ï€5`¤€ €€¡€€b€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.hdr.1-78¡€ € €€ ¡€€.¡€ €€Œˆ¡€€*Ôƒ ¤€Ô$HDRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.ftr.1-78¡€ € €€©N¡€€¡€ €€Òð¡€€”ƒ ¤€Ô$FTRÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TDGGMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.1-78¡€ € €€ ¡€€n¡€ €€¨À¡€€”ƒ ¤€Ô$DBÔ$RL‡Ab€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$GÔ $GRP.TBBMMGJG³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€GLY$Page.trim.2-78¡€ € €€ŒØ¡€€.¡€ €€Òð¡€€*Ôƒ ¤€Ô$DBÔ$RL‡Ab€‚Flow£€¡€Ô$HDR‚$T«€ €¡€"€GLY$Page.hdr.1-78b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Header TextIAAb€‚Flow£€¡€Ô$FTR‚$T«€ €¡€"€GLY$Page.ftr.1-78b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€b€£€¥€‚$PGC78AIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.1-78b€‚ Paragraph£€ €£€Ô$P«€ € €!€‚€¡€"€o€ Footer TextIAAb€‚Flow£€‚$T«€ €¡€"€GLY$Page.trim.2-78b€‚ Paragraph£€ €£€Ô$P«€ € €!€€‚€¡€"€o€DateIAAb€‚ Textblock£€ €0€Ô Write$TR_DH0€Ô Write$TR_PGF¢€É Paragraph0€Ô Write$TR_TYP£€Ô$G³€ €€dµ€%€ €€ ¡€€ ¢€€ £€€ #€$€€ GLY$WKTKTPJG¡€ € €€ ¡€€ ¡€ €€Òð¡€€@ƒ ¤€Ô$DBÔ$RL… GLY$Page.1AAb€€Flow.1‚Flow£€‚$T«€ €¡€"€ GLY$WKTMPDJGb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xCSCSI Architecture, Phase IIIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCGlenn C. EverhartIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xIb€£€²€壀€°CAbstractAAC:IAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€C`An I/O structure is proposed which is characterized by 4 levels (2 class, 2 port) to handle VMS JC\SCSI device control. I/O is represented by a minimum of data structures and most errors are JC_handled by high levels of the code (i.e., class driver code). Flow control will be enhanced to JCXallow several new quota types, and a SCSI control mechanism is added to permit external JCWcontrol of many aspects of the SCSI system's functions. The current set of execlets is JCdmaintained but internal changes are called out for a variety of reasons. Likewise, the current call JC]interfaces used by class drivers to call port drivers (and callbacks from port to class) are JC\modified in an upward compatible way, so that existing components can be used with new ones JC_freely. Data structures will be augmented by specified access methods to encapsulate access to JC]common data items. Existing external interfaces are all maintained, though upward compatible JCFextensions to RESET handling will facilitate QIOserver based failover.IAb€‚ Paragraph£€ €£€Ô$P«€ € €!€€¡€"€b€£€²€£€€xIb€£€²€检€CContentsIb€£€²€磀€xIb€£€²€£€€°CAbstractICContentsICForewordIb€£€²€Ù¢€C#Section I - High Level ArchitectureIC BackgroundIACPurposeIIIIIIC1.0.0IC3Basics: What is Wanted from a new SCSI ArchitectureIIC2.0.0IC.What the SCSI Architecture Implementation mustIICProvide to VMSIIIIC2.0.1IC.History: Ideas Proposed Within the SCSI Group:IIC2.0.2IC/Broad General Principles: About SCSI and how itIIC looks to VMSIIIIC3.0.1IC3How Should a SCSI Connection be Formed and Removed?IC4.0.1IC, Subtopic: SCSI Data Structures To Be Set UpIIC4.0.4 IC# Subtopic: SCSI Connection TeardownIIIC4.0.5IC# Subtopic: Effect of Power ManagersIIIC4.0.6Ib€£€²€ߢ€£€€xCSystem Layout and FunctionIAC2General: Layering or Object Breakdown of SCSI CodeIIC5.0.1IC1 Subtopic: Parallelism between Classes and LayersIIC5.0.5IC= Subtopic: Defining Boundaries of a Class Driver can be ToughIC5.0.7IC- Subtopic: Data Ownership by Class (or layer)IIC5.0.8IC7 Subtopic: Detail on Treatment of Layers at Class LevelIIC5.0.10IC+Need for Common Code and Defined InterfacesIIC5.1.1IC) Subtopic and Aside: How to Break Up CodeIIC5.1.1.5IC$Class-Port Driver Interface OutlinedIIIC5.1.2IJC0Overall Layering of SCSI Code and Error HandlingIIC5.2.1IC&Major Parts of SCSI Layering, DetailedIIIC6.0.1IC1. VMS Class DriverIIIIIC6.2.1IC12. Function Servicing Class Driver Routines LayerIIC6.3.1IC3. Top Level Port LayerIIIIC6.4.1IC&4. Low Level Adapter Port Driver LayerIIIC6.5.1ICTopics of Global ApplicationIIIIC7.0.1IC1. Flow ControlIIIIIC8.0.1IC62. Idling the Driver for SCSI Processing and for PowerIIC ManagementIIIIC9.0.1IC3. RESET HandlingIIIIIC10.0.1IC"4. Setting SCSI Knobs and SwitchesIIIC11.0.1IC)5. How SCSI System shoulkd be InitializedIIIC12.0.1IC66. Requirements on Bad Block Replacement FunctionalityIC13.0.1IC7. Path Failover in ClustersIIIIC14.0.1Ib€£€²€ߢ€£€€xC'Section II - The Port - Class InterfaceIACPort - Class InterfaceIIIIIC15.0.1ICSynchronizationIIIIIC16.0.1IC Data AccessIIIIIC17.0.1IC VMS InterfaceIIIIIC18.0.1Ib€£€²€ߢ€£€€xC AppendicesIAC2Appendix A - I/O Flow Control in VMS 6.2 Code BaseIC$Appendix B - SCSI Knobs and SwitchesIC Appendix C - AEN and Target ModeIC9Appendix D - Locating Port and Class Drivers at Boot TimeIC-Appendix E - Synchronization and Flow ControlIC Appendix F - SCSI RESET HandlingIC Appendix G - Bus Quality MetricsICAppendix H - SCSI IQIC7Appendix I - Synchronous and Wide Negotiations HandlingICAppendix J - Memory ManagementIIIb€£€²€飀€C Foreword:IAAAAAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCSThis document is presented in three sections. The first covers the most high level JCMconcepts and features required of a VMS SCSI implementation, and may be read JCQby itself to gain a top level understanding of the way the parts of the VMS SCSI JCOsystem fit together. The second section covers the port-class interface of the JCSoverall design, since the design envisions port and class drivers and this segment JCSis vital to see how the concepts herein can be implemented. The third section is a JCQseries of appendices covering greater detail in several of the areas of the SCSI JCsubsystem design.IAAJb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCNIt is intended and required that as parts of the subsystem are reworked, this JCKdocument must be reworked to conform, as well as being consulted in design JCRdecisions, so that it begins as a norm for the SCSI sybsystem, but it must end up JC0as also a description of the code at high level.IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ € €!€€¡€"€b€£€²€检€C#Section I - High Level ArchitectureIAAb€‚ Paragraph£€ €£€Ô$P«€ € €!€€¡€"€b€£€²€ꣀ€xIb€£€²€检€CBackground InformationIAICPurposeb€£€²€ãC:IICO1.0.0 The objectives of the architecture work are to produce a meta-design for JCBSCSI on OpenVMS which will be more maintainable than the previous JCPimplementation, which should perform better, and which will be simpler to adapt JCMto future directions of SCSI and of VMS. It will not, however, alter the VMS JCFdevice or I/O model or otherwise invalidate other VMS components. The JCJarchitecture must also be documentable (which follows from the need to be JCmaintainable).IAAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCS1.0.1 Note: In the following, this typeface will be used to describe architectural JCWhat the SCSI Architecture implementation must provide to VMS:IACL2.0.1 2. Requirements. A SCSI architecture must provide standard VMS device JCOdrivers, support the standard busy-bit interface and support VMS I/O functions JCQ(including support for IO$_NOP to flush outstanding I/O) in the standard way. It JCPmust also support existing and future SCSI bus adapters which may be interfaced JCSto Digital processors. It should be able to support new class drivers, but it must JCPsupport at minimum the disk, tape, and generic classes currently supported. The JCfunctions needed are:ICI * Handling IRP functions consistently with other VMS devices in effectsICJ * UCB busy bit must be set when the driver cannot accept more input, butIIC6during mount verify the IO$_PACKACK must be generated.ICK * IO$_NOP must execute serially so that all I/O requests issued prior toIIC>IO$_NOP on a device will be finished before IO$_NOP completes.ICL * MSCPMODIFS bits will be used to flag where a disk driver must mark diskIIC@blocks bad (used by HSdriver) (io$v_mscpmodifs bit in irp$l_funcIICAset for write). (FDT processing needs to be provided to leave theIICbits set also.)ICK * Cancel I/O should ensure that where a cancel is issued by a remote I/OIICCserver that all outstanding I/O from that server must be cancelled.IIC@(VMS 6.2 and earlier code has special case MSCP processing here)IC: * Possibly notify MSCP of entry into mount verify stateIC9 * Possibly notify MSCP when a new device is connected.ICI * Refuse to mount disks on shared SCSI busses (when already mounted onIIC8other systems) unless TCQ, ARRE, and AWRE are supported.IICUThe latter 3 items are violations of layering and should be avoided if possible, but JCMmay need to be accommodated depending on code outside the SCSI subsystem. In JCNfact the cancel I/O function should cause a search through all IRPs which the JCMSCSI drivers have accepted and cancel any such whose I/O may be in progress. JCPBecause the SCSI drivers manage the class busy bit internally, this is the only JC>reliable way to ensure outstanding I/O is cancelled correctly.IIb€£€²€êC-History: Ideas proposed within the SCSI groupIAC 2.0.2 3. b€£€²€¢€CIdeasACC. In its review of architectural issues, a number of common themes JCPhave been developed by the SCSI VMS group. First, there is broad consensus that JCUif the system is not maintainable, no other good characteristics can be added to it. JJCRThis implies that wherever code is commonly used, it must exist in one place only JCTand be treated as a reusable part. The fact that several port drivers were built by JCMmodifying others shows that this is not currently the case. Such common code JCPexists within class drivers also. Another theme has been the desirability of an JCOobject oriented design, with concessions to performance over purity. Some have JCOargued that an O-O language should be used for implementation as well, but all JCMbelieve that C++ is not currently up to doing an I/O subsystem, and there is JCLwidespread concern that performance could suffer if an O-O language runtime JCPwere slow. O-O design has wide support, though. It was pointed out that the ISO JCLnetwork model applies to the SCSI subsystem, the analogy being particularly JCLclose for intelligent adapters. This model does not differ much from other JCQlayering models suggested, but clarifies the location of error recovery code and JC-points up the utility of parallel operations.ICOThe notion that some devices understand more of the SCSI model than others and JCNthat the SCSI subsystem should be structured to allow the maximum use of SCSI JCOwhich a device can handle, subject to local overrides, appeared several times. JCKUsing more advanced SCSI commands can reduce the amount of work needed for JC.the drivers considerably in some cases (e.g., b€£€²€⢀£€€°Cio_$writecheckAC ) while the JCQfunctions can be simulated for less capable devices. The possibility that linked JCISCSI commands, or multiple SCSI commands per process might be useful was JCQdiscussed also. It may be that using such techniques to handle all the pieces of JCJlarge I/Os at once, or chaining some commands together with some contexts JCMstored in the control structures to track how much had been completed, could JCDprovide noticeably higher performance than separated I/O operations.ICRA great deal of emphasis was placed by the group on the notion that any code that JCQis used in more than one place must exist once, as a common code area. This does JCSnot necessarily mean as a separate execlet, but at least such code must be present JCRas source once only, and this must be maintained so that modifications to a piece JCTof code automatically change all copies, not just one of many. This will contribute JCMto maintainability and should be accompanied by documented interfaces to the JCPcode. It has been suggested too that building in error information capture code JCFwhich could be enabled via setmode/sensemode would further facilitate JCSmaintenance. It was pointed out that the register dump routine in particular would JCQbenefit by addition of a buffer which could hold more error specific information JCPfor error logging. The ability to disconnect and perhaps even reload drivers is JC1viewed as useful for a number of situations also.IIb€£€²€êC@€zÀ>@€a«€À€a«Ab€£€³€„…l€€Š¢€€E`€zÀk €zÀk €a«€E`€a«Ab€£€³€„…l€€Š¢€€à€{#€§@€{#€§@€bk€à€bkAb€£€‚$2D‡«€¡€ € €€oÀ€l(€sÚ€l(²€£€€x³€ €€„…C...Ab€£€‚$2D‡«€¡€ € €€ €te€=d€te²€£€€x³€ €€„…CFunction LevelAb€£€‚$2D‡«€¡€ € €€€€lè€.€lè²€£€€x³€ €€„…CHandlerAb€£€³€„…l€¢€€) €€a€) €{ƒAb€£€³€„…l€¢€€S €€a€WÀ€{âAb€£€³€„…l€¢€€c€€a€€{#Ab€£€‚$2D‡«€¡€ € €€„`€…ÿ€©å€…ÿ²€£€€x³€ €€„…CKernel ProcessesAb€£€‚$2D‡«€¡€ € €€„`€B€žÌ€B²€£€€x³€ €€„…C for each I/OAb€£€³€„…l€€Š¢€€À€Zî€Z`€Zî€Z`€6:€À€6:Ab€£€‚$2D‡«€¡€ € €€ €S€Uö€S²€£€€x³€ €€„…CTop Level Port CommonAb€£€‚$2D‡«€¡€ € €€ €LS€, €LS²€£€€x³€ €€„…CCode.Ab€£€³€„…l€€Š¢€€€0<€X€€0<€X€€¦€€¦Ab€£€³€„…l€€Š¢€€pà€(_€¥À€(_€¥À€¤€pà€¤Ab€£€‚$2D‡«€¡€ € €€t € "€¢©€ "²€£€€x³€ €€„…CSCSI Bus & DevicesAb€£€³€„…l€¢€€) €b €) €ZŽAb€£€³€„…l€¢€€'À€6š€'À€0üAb€£€³€„…l€¢€€M@€6ú€M@€1¼Ab€£€³€„…l€¢€€3À€0œ€3À€#!€Xà€#!Ab€£€‚$2D‡«€¡€ € €€6`€*þ€Op€*þ²€£€€x³€ €€„…C Queue MgrAb€£€‚$2D‡«€¡€ € €€€#€Jc€#²€£€€x³€ €€„…CAdapter Specific PortAb€£€‚$2D‡«€¡€ € €€€f€>Œ€f²€£€€x³€ €€„…CCode & Int. SvcAb€£€‚$2D‡«€¡€ € €€5@€2€9΀2²€£€€x³€ €€„…CorAb€£€l€¢€€Xà€ ‚€q@€ ‚Ab€£€‚$2D‡«€¡€ € €€à€‹€h«€‹²€¢€£€€x³€ €€„…CSCSI Architecture Control FlowAb€£€‚$2D‡«€¡€ € €€+€€ŸÖ€8߀ŸÖ²€¢€£€€x³€ €€„…C$QIOAb€£€‚$2D‡«€¡€ € €€HÀ€te€j€te²€£€€x³€ €€„…CFunction LevelAb€£€‚$2D‡«€¡€ € €€HÀ€l(€b’€l(²€£€€x³€ €€„…C Handler 2...Ab€£€‚$2D‡«€¡€ € €€‚€€t€Š?€t²€£€€x³€ €€„…Cetc.AAb€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAJb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€¢€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€€CTopics of Global ApplicationIb€£€²€㢀£€€xC7.0.1 General Topicsb€£€²€¢€C.ICLThe following are some general topics which pervade the SCSI implementation JC:and need to be discussed as part of the architecture also.IIb€£€²€êC Flow ControlIAC$8.0.1 Flow Control and Resource Use:IICOSCSI software should not in general rely on resource exhaustion for their only JCOflow control. Rather, they should have some means of regulating the amount and JCNdistribution of I/O on a bus so that the system as a whole can adapt to local JCRvariations in resources available. Thus, for example, where a driver allocates 64 JC0KB of buffers from pool statically whether on a b€£€²€¢€CJensenAC or a b€£€²€¢€C TurbolaserAC, and JCSthrottles control based on exhaustion of this resource, flow control is being done JCIsuboptimally. Rather there should be some decision based on resources to JCRdetermine what is allocated, and a quota system based on resources which will not JCNrequire that an exception be propagated - somewhat inefficiently - from lower JC-level software up when resources are used up.IIb€£€²€Ù£€€°CU8.1.1 Some flow controls can be accomplished from within the class start-IO entry of JCSthe top level class driver, and some could start in the port common layer. In this JCTscheme, it is desired to enable quotas such that a port driver can inform the class JCXdrivers that the port can only handle "n" I/O operations at a time. Enabling I/O quotas JCSper port or per device tends to allow bus resources to be divided between multiple JC\initiators and to conserve pool, preventing pool exhaustion. In addition, it is possible to JCRperform some quota operations which can tend to reduce what has come to be called JCUthe "high I/O" problem, namely that high activity at high SCSI IDs can prevent lower JCUSCSI IDs from ever winning arbitration and accomplishing any work. (In fact, some of JCUthis quota processing will most conveniently fit in port common; class callbacks are JCXused to stop I/O and restart it.) (Note: this part of this document should be rewritten JC9when quota code is actually put into the SCSI code base.)IAAAAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙIAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCX8.1.2 To manage such issues, first the port driver would need to record its quota in an JCVappropriate structure (the SPDT seems sensible). In addition, the SPDT should contain JCZanother quota, similar in size to the first, plus an array of current I/O counts per SCSI JC%target to be used as described below.IAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙIAAJb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCY8.1.3 In addition it is desirable to have per device quotas which can prevent any single JCRdevice from using the entire SCSI bandwidth; these quotas can reside in the class JCYUCB. Initially they might be set large (e.g. port quota minus 1 or 2) though a special JCYI/O could be provided to allow site tailoring. Port-global quotas can be handled in port JCTdriver common levels as currently done. The current practice has the advantage that JCEthe quota is sensitive to I/O sizes also for per-device flow control.IAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙIAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCX8.1.4 The overall quota processing could run in the class start-io entry or in the port JCMcommon layer. When an IRP was dequeued, the device I/O count would be bumped JCUand compared to the device quota. If it were too high, overquota processing would be JCOdone, the port count would be incremented and compared with the port quota and JCVoverquota processing started if it were too high. Port quotas would be decremented in JCQport common and overquota processing done if needed. Finally, the per target I/O JCVcount would be bumped and overall port I/O counted from the start (lowest SCSI target JC[ID) of the I/O count arrays to the current ID position. Exceeding the quota for this "high JCXI/O" quota would start overquota processing. It is assumed here that the I/O counts are JCRmaintained as the number of active I/O requests actually in progress, decremented JCXwhen I/O finishes also. A "fairness count" should be maintained for the high-I/O quota JC=so that it will be skipped after some count of rejected I/Os.IAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙIAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCT8.1.5 Should no "overquota processing" be started, I/O would be started in a kernel JCRprocess with the SCDRP allocated on the KP stack and being filled in with mapping JCTinformation and with a call to the port driver locating where in the command buffer JCQregion of the SCDRP the command buffer should actually be placed by class driver.IAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙIAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCR8.1.6 Should overquota processing be needed, however, the action will be that the JCXdevice would stall the current kernel proces, setting UCB busy. Upon unstalling it will JCVmerge with normal I/O processing after clearing the UCB busy reason flag. The current JCLbusy reasons mask will need some more bits to specify the quota conditions. IAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙIAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCQ8.1.7 Where several quotas are present, however, it is essential that completion JCVprocessing ensure that I/O is kept operating when quota use drops so that all devices JCWI/O is re-enabled and actually started. This implies some additional processing at I/O JCcompletion in most schemes.IAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCU8.1.8 The quota processing here will tend to favor I/O from lower SCSI IDs being fed JCUinto the port over I/O from higher IDs, thus militating against lower SCSI IDs being JCWstarved of access. It may be however that the functional form of the processing is not JCWthe best possible and that some other mathematical variant will prove superior. In any JCXevent the current port level code to prevent I/O starvation is not invalidated by this, JConly supplemented.IAAJb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙCU8.1.9 The overall benefit of doing quota processing as proposed here is that I/O use JCRcan be apportioned among multiple initiators and among bus devices even though no JCVglobal communications of use are used, and that resource exhaustion throttling can be JC avoided. IAAb€‚ SYCO$ParText£€ €£€Ô$P«€ € €!€‚ƒ„…¡€"€©€€Xª€¡€€Ȳ€Øb€£€²€ÙIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xC8.2.1 As has been said, b€£€²€¢€C)one I/O structure per level of globality ACshould reduce the JCNload on VMS allocation routines. This would, most particularly, mean that one JCKcommon structure would be used as the SCSI encapsulation of an I/O request JC*during its life. It would need to include b€£€²€¢€C$information about the I/O operation ACbeing JCdone, about the b€£€²€¢€Cstate of the I/O requestAC,b€£€²€¢€C space for command buffersAC and forb€£€²€¢€C status b€£€²€Ù¢€£€€°C JAC informationACH, and other fields as well. In general, parts of this structure will be JCHmanipulated by multiple code areas. Should kernel processes be used for JCRsynchronization, and should the structure be allocated from KPB stack, allocation JCQof the structure will be very efficient and subfields can be treated as owned by JCNdifferent segments of SCSI code. The command buffer would be shared, however. JCMFor efficient use it might be appropriate to pass the address of the command JCQbuffer section of an I/O structure to a port driver, which would then return the JCRaddress within that section to fill in with the actual command buffer. This would JCQbe done to avoid multiple data copies by port and adapter drivers which would be JCZable to fill in other parts of this area with adapter specific data and then pass it to a JCQSCSI adapter to have it executed. The "get offset within command buffer" routine JCPwould generally be a short one within the upper levels of a port driver. A SCSI JCPcommand structure will benefit from some fields used to retain I/O state during JCQerror processing so that error recovery need not always allocate new structures. JCRWhile it is not the main control path, error processing and I/O processing may be JCOsimpler to handle where a single structure contains all needed context. A SCSI JCKcommand buffer should not exclude the possilility that several linked SCSI JCCcommands might be used, and contain space for enough state machine JCLinformation to handle such commands. (A few quadwords will probably suffice JCMfor this.) Such space in an SCDRP may allow managing several I/O segments in JCTparallel also, with state in the SCDRP to allow them to be collected (as happens in JCQstriping drivers), though this would require that the port level calls below the JCRfunction dispatch part of the class driver or the top level port driver (wherever JCKsuch functions were implemented) would have to allow the kernel process to JC;continue instead of simply stalling it until I/O completes.IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCSA set of access routines (which may be actual routines or simply macros) to locate JCJan ID, a LUN, or to move from one structure to another should be defined. JCRSimilar access routines should exist for all the most important quantities in the JCUdata structures. This will make it simple to adapt to new structures if the old ones JJCprove inadequate.IIb€£€²€Ù£€€°IAAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€ꣀ€xC>Idling the Driver for SCSI processing and for Power ManagementIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCD9.0.1 Idling the Driver for SCSI processing and for Power ManagementIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCIIn order to accommodate power management or class disconnect, it will be JCRnecessary to be able to idle some SCSI device drivers. The difference between the JCLtwo is that a power management idle might be accomplished by sending a SCSI JCLstop command to a device at "idle" time and sending a SCSI start command at JCO"unidle" time, where the device generally may have been idle for a time before JCPbeing "power-idled" or spun down. Class disconnect is not a temporary thing and JCVrequires that the SCSI connection be disabled via a device reset. In either case, the JCPdriver needs to be placed in a sequential mode first so that the commands to be JCHgenerated will occur in a well defined sequence without race conditions.IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCM9.0.2 In general, the error handling code will have to place the device into JCRsequential mode also, so that error recovery can be done without interference. In JCTcurrent drivers this is done via a class callback. Something similar will be needed JCQwith more structured error handling code to allow additional input to be blocked JCTpending error recovery. Since this call must exist in any case, it can be used also JC-for the insertion of "idling" SCSI commands. IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCK9.0.3 Because placing the device into sequential mode requires port driver JCTcooperation, any entry which is used to place a device into idle state will need to JCScall port entry points. These exist already in the freeze-queue and unfreeze-queue JCRcalls. Where disk spindown is done, in general it will be followed by disk spinup JCKand no need for mount verification or the like. Code doing spindown/spinup JCRwould be at the class function dispatch level generally for most of its life, and JCQmight even exist there directly should power management be handled via a special JC*I/O function instead of a new driver call.IIb€£€²€êCRESET HandlingIAC10.0.1 RESET handling:IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCNWhen resets are generated or detected, or in general when certain classes of JCSerrors indicate SCSI connection information must be regenerated due to loss at the JCJtarget, the SCSI system must return all I/O in progress with a DEVICE NOT JCRREADY status so that it can be reissued by mount verify processing. Note too that JCTan indication of whether the data connection is still healthy should be passed too. Jb€£€²€Ù£€€°CM(This might be done using an otherwise unused I/O Status Block status byte.) ACThis JCRwill serve to allow a qioserver to distinguish when a new path should be found to JJCPa device, and to inhibit some console messages from mount verify when there has JCTonly been a bus reset seen. Mount Verify is to be used here because if it is not, a JCRdevice could be swapped and its unit attention signal not noticed (because no I/O JCVmight be done to it for a while) and the unit attention status might be lost due to a JCORESET. This would cause data corruption save for the volume validation done by JC mount verify.b€£€²€Ù£€€°C IACQ10.0.2 It should be added that when or if the SCSI control chip detects an error JCHindicating the SCSI bus was disconnected or reconfigured (which may not JCHproduce a SCSI RESET by itself), device UNIT ATTENTION should cause the JCKsame processing as RESET to occur, including starting mount verify. Such a JCLcondition should be treated like RESET, but signalling that bus path is now JCNsuspect. The ability to do this will depend on the SCSI interconnect hardware.ICS10.0.3 When a reset is detected, the port must be placed in single thread mode and JCTits reset handling code or that of the class driver informed so that the I/O can be JCOrestarted. In general the class UCB must be held busy during this time., Mount JCTverify should be resorted to for reset cleanup, unless it can be determined that no JCVdevice changes can have occurred and it is possible to clean all state up internally. JCNWhere a bus disconnect has been signalled, for instance, mount verify must be JCinvoked.ICS10.0.4 Controller reset should be handled at the lowest possible level also, which JC:will often be in the lowest level part of the port driver.ICT10.1 Reset must be possible to initiate from any level within the SCSI architecture JCMwith proper synchronization with the rest of the SCSI subsystem. The cleanup JCPprocessing needed must be provided directly or as a result of a reset detection JCQinterrupt. Calls must also be available to handle SCSI RESET interrupts. It must JCTalso be possible from device IPL to stop further I/O so that I/O during a reset can JCLbe inhibited. Use of Bus Device Reset should be considered however wherever JCNfeasible, since it will limit the effect of the reset functions to one device.IIb€£€²€êC!Setting SCSI "Knobs and Switches"IACI11.0.1 System Options. Functions to Set them and Some Examples of Needed JCOnesIIC SCSI sensemode and setmode functb€£€²€¢€C-ions must be built into the system to permit JCPcontrol of the many options in SCSI. [These may use any convenient I/O function JCTas a base, so as not to disturb published program interfaces, but will be described JC+as set and sense mode in nature. This does b€£€²€¢€Cnot ACimply they use the IO$_SETMODE JCand IO$_SENSEMODE functions.]AC/ Where different "intelligence levels" of SCSI JCUhandling are supported for I/O functions, the selections of these, and their initial JCQprofiles, should be settable. Other SCSI options should also be settable where a JJCRdevice can be allowed to used them. (The interface being described here is a SCSI JCJcontrol interface which may or may not be documented for non-Digital use.)IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCN11.0.2 In some cases this will require that SCSI commands be issued. In these JCMcases, the setmode functions that disable an option should be examined also. b€£€²€Ù£€€°CFor JCPexample, when one turns on write back cache mode in a disk drive, the disabling JCVsetmode should also ensure that the cache is flushed. In the case of writeback cache, JCWit will be highly desirable that io$_available, io$_unload, and power-saving SCSI stop JCVcommands flush the cache to disk also, to provide at least a minimal safeguard to the JCVuser's data. Writeback cache can be useful for scratch disks, where the disk is being JCWinitially loaded from some other medium (as in restore of backup), where the disk is a JCVshadow copy target, or where some application is writing the disk which takes its own JCXmeasures to guard data (e.g. logging). Because data is held in cache at times with this JCWoption, it has more need for side effects than others, and will imply that the objects JCQhandling disk deaccess be modified more than most mode changes. This illustrates JCVhowever that mode change handling will in general affect multiple objects and must be JCdesigned with care.IAAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€ÙIb€£€²€㣀€xCL11.0.3 Error capture facilities should be built into SCSI code which can be JCIenabled or disabled via sense/set mode also. These should allow enhanced JCVrecording of internal state of the drivers involved and (as possible) SCSI bus state, JCQeither as ring buffers (which might be allocated in the setmode service code) or JCSother capture facilities. When these facilities are not in use, the code should be JCPskipped so that performance impact is minimal. At least at the interface points JCPwithin the SCSI system such recording should be available. At other points such JCMcode should be inserted where it is deemed useful. The various data capture JCWfacilities should be individually selectable where feasible. In this way, it should be JCLpossible to capture some history information without shipping debug drivers JCPwhere customer problems are reported. These facilities might reasonably captureIC I/O functionIC IRP addressIC IRP sequence numberIC IRP$L_MEDIAIC KPB addressIC SCSI CDBIC N bytes of dataIC SCSI statusIC sense dataIC I/O status codeIC IOSBICLand whatever else seems useful. Selection of some or all of these should be JCMpossible. The capture routines should also indicate what routines were being JJCQcalled so that some run trace history would remain in the ring buffers, provided JCSthis functionality was desired. Some selective capture (perhaps conditioned on I/O JCVsuccess or failure) should be possible also, since this entire code string would only JCJbe executed in "heavy diagnose mode" and thus would impose essentially no JCnormal overhead.IAAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xIAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCK11.0.4 An additional function of "setmode/sensemode" is that it will allow JCSinclusion in drivers of functions which logically belong to their abstractions but JCRwhich have been left out because of perceptions that they are dangerous. Thus for JCKexample it becomes easy to allow the IO$_FORMAT function to be implemented JCVbut have its effect able to be "turned off" unless special authorization is given via JCVa utility designed for that function. Such a control is safer in general than relying JCRon a random privilege bit, because it can be made unit specific and because it is JCPcommon for an attacker who gains privilege to turn all privileges on. While the JCLsetmode would require privilege, its DCL interface could readily be further JCguarded.IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xCM11.0.5 In general, numbers used as limits or sizes within the SCSI subsystem JCKshould be reviewed and many of them made dynamic, since values in existing JCSSCSI code were set often by guess alone. Allowing variation via setmode is a first JCQstep toward being able to set them optimally, even where no automatic adjustment JCCscheme is available. This includes timings, buffer sizes, and more.IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xIb€£€²€êC%How SCSI system should be initializedIAC12.0.1 InitializationICOInitialization of SCSI devices is unchanged from its VMS 6.2 behavior (see the JCSrelevant Appendix D), save that it is envisioned that the planned Registry be used JCOto set up SCSI parameters where a site has set them up, and some SCSI features JCNmay be initially controlled by VMS SYSGEN parameters to allow boot of devices JCMwhich otherwise might not function. Control of whether to use tagged command JCGqueueing, synchronous, or wide SCSI are candidates for such parameters.IIb€£€²€êC3Requirements on Bad Block Replacement FunctionalityIAC13.0.1 Bad block replacement.ICUBad blocks are detected as a result of I/O errors. Where initialization detects that JCQ"write long" works, this permits tagging blocks as erroneous where data is lost. JCNRevectoring bad blocks normally is done via command to the SCSI device. Where JCFsuch revectoring is not possible, however, the SCSI system must allow JCRfunctionality to continue, but set a status bit so that components relying on bad JJCTblock revectoring can tell that such is not supported. Multi-initiator systems will JCRneed automatic revectoring, which will require additional status. Note that extra JCOretries should be available as a means of optional dealing with bad blocks, as JCRshould simply returning error status and skipping badblock processing altogether. JCHThis behavior could be set by setmode as well as by results of tests at JCinitialization. ICIThis document proposes no changes in badblock handling save that devices JC:unable to support such should be tolerated as local disks.IAAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€b€£€²€ꣀ€xCPath Failover in ClustersIb€£€²€ãC14.0.1 Path failoverICRThis should be handled by the qioserver. The SCSI drivers will issue mount verify JCSwhen they cannot access a disk, which will be the expected signal that other paths JCKto the SCSI disks may be switched to. Since the qio server will operate by JCTintercepting I/O to normal drivers and rerouting it, no work within the SCSI driver JCRsystem is needed to support this save that start-io calls must be coded such that JCRthe I/O intercept can redirect them immediately. the needed I/O sequentiality can JCObe obtained via the IO$_NOP function. Getting the SCSI drivers to handle reset JCKwithout constant use of mount verify will simplify the job of a QIO server JCSdeciding when to find a new path. A discussion of a design for a $qio server based JCTon intercept driver techniques was presented in an earlier document. It is entirely JCRstraightforward for an intercept driver to replace another driver unit's start-io JCJprocessing invisibly and switchably, and indeed to change the device name JCOdynamically so that loading "extra" DK or MK units, for example can be done by JCNpicking an "impossible" device name and having it changed to what a qioserver JCIconnected SYSAP informs the intercept driver the name must be. Only two JCDrequirements on SCSI exist for this to work: that the interceptable JCMUCB->DDT->Start_IO chain be used for finding the start_io entry point of the JCWdrivers even internally, and that (for efficient use) the driver signal whether or not JC+mount verify implies path loss when it can.IIAAIAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€IAb€‚ Paragraph£€ €£€Ô$P«€ € €!€€¡€"€b€£€²€检€C%Section II - The Port-Class InterfaceIAAb€‚ Paragraph£€ €£€Ô$P«€ € €!€€¡€"€b€£€²€检€Ib€£€²€㣀€xCR15.0.1 This section describes the architectural port-class interface. This is the JCUinterface between the class driver images (level 2 of the architecture) and the port JCKcommon routines (level 3 of the architecture) which serves as the boundary JC%between port and class driver images.IJC ICQThese routines will be described in terms of the SPI$ macros used in the VMS 6.2 JCNinterface where such functions exist. The differences from VMS 6.2 processing JCwill also be indicated.IICPThe SPI$ routines should attempt to stall until they can complete the requested JCPaction, but may return error codes should they determine that success cannot be JCUobtained even after repeated stalls. Thus their callers should check for status, and JCQcalls which "undo" prior operations (e.g., unmap undoes map) should tolerate the JC5results of possible failures in the undone operation.IICHSome new macros will be described below as NEW$name for purposes of the JCTinitial version of this description. As the architecture is implemented, the chosen JCnames should replace these.IAAAb€‚ Paragraph£€ €£€Ô$P«€ € €!€€¡€"€CSPI$ABORT_COMMANDICAborts a SCSI command.b€£€²€¢€C b€£€²€Ù¢€CDifferences from V6.2:Ib€£€²€¢€IIIC-This command was not implemented for V6.2 butIIIIC2should be implemented for this architecture. It isIIIIC4intended to attempt to abort first the command, thenIIIIC2all commands on the device, then reset the device,IIIIC7and finally reset the SCSI bus if and only if no lesserIIIIC2measure succeeds in aborting a command. The intentIIIIC1is that this command be available and be used to IIIIC0implement io$_cancel for long commands at least.IIIIC)This sequence would use ABORT TAG, ABORT,IIIIC(DEVICE RESET, or SCSI BUS RESET commandsIIIIC5in that order, finishing when one succeeds. Note thatIIIIC'ABORT TAG is mandatory for TCQ devices.IAAACSPI$BUFFER_MAPIIC9Establishes that a port driver can address a user buffer.b€£€²€¢€C b€£€²€Ù¢€IIJIIICDifferences from V6.2: b€£€²€¢€CThis mapping may be calledIIIIC7when a SCDRP is set up or omitted if it is possible forIIIIC5a class driver to map the user buffer without specialIIIIC3processing. In general this routine handles paddingIIIIC5requirements, however, and is likely to be needed andIIIICused as in V6.2IAAACSPI$BUFFER_UNMAPIC6Unmaps the user buffer.This routine undoes the mappingIIIIC4done by the buffer_map routine, releasing any systemIIIICresources needed.ICSPI$CMD_BUFFER_ALLOCIC8Causes the port driver to allocate a SCSI command bufferIIIIC#and set its address into the SCDRP.b€£€²€¢€C b€£€²€Ù¢€CDifferences fromIIIICV6.2: b€£€²€¢€C+The commnd buffer should generally be movedIIIIC5into the SCDRP, and this routine will return with theIIIIC9buffer initialized as it requires, a pointer to the startIIIIC-of the command buffer in the SCDRP (where theIJIIIC7start is adjusted to be aligned as the port needs), andIIIIC6where it may return a "special packing" flag. On entryIIIIC3the SCDRP is expected to have a new flag which willIIIIC4tell a port driver that the SCDRP contains a commandIIIIC1buffer area. If the port driver requires special IIIIC1command buffer filling (as for example, PKSdriverIIIIC-must generate CAM CCB blocks, not normal SCSIIIIIC2command buffers), another SCDRP flag should be setIIIIC=within this routine to tell its caller that it should issue aIIIIC.call to NEW$CMD_BUFFER_FILL to perform specialIIIIC6buffer filling. The arguments to cmd_buffer_fill will IIIIC.include some "helper" ones which indicate whatIIIIC/SCSI operation is being performed, details TBD.IIIIC4(Note: where such packing is performed, class driverIIIIC2code which alters parts of SCSI commands will needIIIICto ACprecedeb€£€²€¢€C! the call to NEW$CMD_BUFFER_FILL)IAAACSPI$CMD_BUFFER_DEALLOCIC!Deallocates SCSI command buffer. b€£€²€Ù¢€CDifferences fromIIIICV6.2:b€£€²€¢€C. If the command buffer is allocated within theIIIIC,SCDRP, this routine may be omitted since theIIIIC%SCDRP will be deallocated separately.IAAC SPI$CONNECTIIC:Creates a connection from a class driver to a SCSI deviceIIIIC7unit. Same as 6.2 except that wider IDs and LUNs may beIIIICused to allow some fairness control where multiple initiators IIJIIC8exist on a bus. While no automated control mechanism is IIJIICcontrol of it soon enough to avoid timeouts. Two such sets of JIIC:quotas are envisioned. One, which corresponds to the V6.2 IIJIIC:code, will prevent new I/O from entering the system where IIJIIC:some I/O is found to be about to time out (via a periodic IIJIIC9scan). The other is envisioned as a mechanism which will IIJIIC=block I/O from higher priority SCSI IDs where lower priority JIICSCSI IDs are about IC)to time out. The blocking of all new I/O IIJIIC;would take place then only when the lowest priority ID was IIJIIC=found to have I/O approaching timeout status. The processing JIIC ddt -> startio) to facilitate intercepts. This represents trivial JCOmodification to existing code however. Should some such facility as a count of JCRoutstanding operations or a callback when such a count reaches zero be needed, it JC7will be integrated as shall be specified and designed. IIAAIb€£€²€检€C AppendicesIAIAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€b€£€²€£€€C;Appendix A: Discussion of I/O flow control in VMS 6.2 SCSI JC!and suggestions re later versionsIAICSTAR::DUNHAM "Jim Dunham"IC!470 lines 26-SEP-1995 08:47:54.53IIC-< SCSI I/O Flow and Control>IC Abstract:ICZ ========= This paper attempts to discuss I/O flow throughout the OpenVMS I/O subsystem JCbas its relates to SCSI I/O. It discusses previous, current and future directions in what was, is JCaand could be done to address I/O flow control and its relationship with resource utilization in JCthe EXEC I/O.IC' Overview of tagged command queuing IC" =================================ICY OpenVMS Alpha SCSI device drivers, support the tagged command queuing architecture of JC[the SCSI-2 standard. Tagged command queuing allows a class driver to pass multiple queued JCaI/O requests directly to a port driver without waiting for any one I/O request to complete. The JC_SCSI-2 standard states that, tagged queuing allows a target (SCSI disk or raid subsystem) to JJC^accept multiple I/O processes (up to 255 SCSI commands) from each initiator (an SCSI adapter JC^on an AlphaGeneration system) to each logical unit (disk or raid set). OpenVMS Alpha SCSI JC\device drivers, also support the SCSI-1 standard for non-queuing SCSI devices, non-queuing JC[SCSI adapters and as a model for contingent allegiance processing. This is the non-tagged JCcommand queuing model.IC2 Non-Tagged Command Queuing OpenVMS I/O Model IC-=============================================ICR The OpenVMS SCSI non-tagged command queuing I/O subsystem, consists of a single JC]threaded I/O processing queue, driven by I/O requests issued to the SCSI class driver. This JCballows for only a single I/O request to be processed at a time by the associated SCSI device. JC]If the SCSI class driver is idle (UCB$V_BSY not set), then UCB$V_BSY is set and the current JCfI/O request (IRP) is sent directly to the class driver's start-I/O routine. These actions causes I/O JC\processing to commence on the class driver associated device. If the class driver is busy JC_(UCB$V_BSY set), then the current I/O request is place on the class drivers I/O pending queue JC\of its associated class driver UCB. Each IRP is processed one at a time from "start-I/O" to JC\"request complete". During, "request complete" processing, if the pending I/O queue is not JC^empty, then the next IRP is dequeued and again sent to the driver's start-I/O routine. If the JC]pending queue is empty, UCB$V_BSY is cleared and the class driver is now idle. For the disk JC]class SCSI device driver (DKDRIVER), it performs an "elevator" seek optimization at the end JC_of each I/O request (just before "request complete" for the current I/O). Queue reordering is JCadone on reads and writes such that the LBN of the next I/O to execute is numerically closest to JC]the LBN of the last I/O, in the current direction of head movement. DKDRIVER will only look JC]ahead 4 I/O's in it's pending queue, thus limiting the maximum realized benefit. While this JCYapproach gains some amount performance by helping to optimize seek latency, much greater JCaperformance benefit may be realized by sending all outstanding I/O requests to the device. The JCYfunctionality is called tagged command queuing (TCQ). This functionality allows the SCSI JCYdevice to alter the queuing of I/Os and perform device specific latency optimization. An JCbadditional benefit is gained by eliminating latency associated with passing a request through the JCNport/class device driver layers on at a time, prior to starting the next I/O.IC Tagged Queued I/O ModelIC =======================ICZ The OpenVMS SCSI tagged command queuing I/O subsystem, consist of a ! multiple threaded JC_I/O processing queue, driven by I/O requests issued to the SCSI class driver. This allows for JCHmultiple I/O's to be queued concurrently to the associated SCSI device.ICZ If the SCSI class driver is idle (UCB$V_BSY not set), then UCB$V_BSY is set and the JCccurrent I/O request (IRP) is sent directly to the class driver's start-I/O routine. These actions JCbcauses I/O processing to commence on the class driver associated device. If the class driver is JC^busy (UCB$V_BSY set), then the current I/O request is place on the class drivers I/O pending JCYqueue of its associated class driver UCB. As each IRP starts processing and there are no JC]outstanding reasons (resource contention, flow-control, etc.), UCB$V_BSY is cleared. If the JC^pending I/O queue is not empty, then the next IRP is dequeued and again sent to the driver's JC\start-I/O routine. This loop of dequeuing IRPs continues until one or more reasons exist in JCawhich it would not be advantageous to start the next IRP for processing. At "request complete" JC`processing or when an outstanding reason no longer exists, an attempt is again made to restart JCaqueued I/O. As each concurrent IRP is processed, the class and port drivers collectively process JCZand initiate each SCSI I/O request, tags and sends them directly to the target device for JJC5processing, without waiting for the I/O to complete.IC^ These SCSI I/O requests will then be queue on the SCSI devices internal command queue for JC_processing. The SCSI device can then perform optimization based on a-priori knowledge of it's JC^hardware capabilities, dynamic positioning and latency schedules, spindle configuration etc., JC`thereby gaining performance benefits over single I/Os. In addition, I/Os pending in the device JCZqueue may begin immediately upon completion of the current I/O, without waiting for the JCbcurrent I/O and its status to be returned back up through the port and class driver levels. This JCayields a significant performance gain, since I/O completion processing will be performed at the JCDsame time the SCSI device is working on its internally queue I/Os. IC_ When the SCSI I/O request completes, its results, status and tag are returned through the JC>SCSI port and class drivers, which completes the I/O request.IC$ Calling Driver's STARTIO RoutineIC" ================================ICW To initiate I/O to a device driver EXE$QIODRVPKT is invoked, which in turn calls the JCVroutine EXE$INSIOQ. EXE$INSIOQ carries out the following actions which may insert the JCXI/O in the device's unit queue (UCB$L_IOQFL), or call the driver at its STARTIO routineIC2 o acquires the device's fork lock (UCB$B_FLCK)IC4 o increments the devices queue length (UCB$L_QLEN)IC] o if the device is not busy (UCB$V_BSY clear), it sets busy then calls IOC$INITIATE which JC1will call the device driver's STARTIO entry pointICZ o if the device is busy (UCB$V_BSY set), then call EXE$INSERT_IRP to insert the current JC3IRP into the device's I/O Queue, by priority order.IC/ o release the device's fork lock (UCB$B_FLCK)IC. Single threaded class driver, STARTIO routineIC,============================================ICXIn the single threaded class driver (GKDRIVER and MKDRIVER), each IRP is processed one JCXat a time through STARTIO processing, invoking function specific device processing, and JC[completing I/O processing by calling REQCOM. During the time the I/O processing is active JCU(STARIO -> REQCOM), UCB$V_BSY is set which causes any new I/Os to be queued to the JCVdevice's unit queue (UCB$L_IOQFL). REQCOM may start the next I/O, if one was queued. JC(See REQCOM processing). IC-Multi-threaded class driver, STARTIO routine IC-============================================ ICY The multi-threaded class driver's (DKDRIVER) STARTIO routine is implemented as a loop, JC^where IRPs are processed concurrently until either there are no more IRPs to process, or and JCbinternal event (resource contention, flow-control, etc.) exists which causes the device driver to JCbe busy (See class busy bits).ICT Within STARTIO when the next IRP (if one exists), is dequeued and there are no JCcoutstanding events to prevent the starting of it, a KPB thread is created and associated with this JC_IRP. This KPB thread performs the IRPs function specific processing, until such a time as the JC\I/O completes (see REQCOM processing below). When the KPB thread stalls for the first time, JCWthe class driver's STARTIO loop is resumed, which attempts to dequeue the next IRP for JC processing.IC` The STARTIO routine exits if internal events exists that prevent further I/O processing, by JCYplacing the IRP back at the front of the unit queue, and setting the device's busy flag.IC] The STARTIO routine also exits when there are no more IRPs to process, but the devices's JJCbusy flag is clear.IC EXE$KP_STARTIO StartupIC ======================ICZ During the transition of an I/O from single threaded IRP processing (via device drivers JCXSTARTIO routine), and multi-threaded IRP processing (via call to EXE$KP_STARTIO), there JCdis a possibility that the resources available to start the KPB may not be available. This fact is JCcneeds to be reflected in the class driver's class busy bit processing. Specific routine callbacks JCYwere added to EXE$KP_STARTIO, that are invoked when the resources are not available, and JCRagain when they become available. Complete of KP_STARTIO process associates a KPB JCZ(kernel-process-block) and its associated stack with each active IRP. One the KPB thread JC`becomes active, the class driver allocates off the KPB stack a SCSI class driver request packet JCS(SCDRP) based on information contained in the I/O request packet (IRP). Additional JC`processing is performed on the SCDRP, and it is then passed from the SCSI class driver to the JC\SCSI port driver for processing. The SCDRP contains the addresses of the class drivers unit JC\control block (UCB), SCSI connection descriptor table (SCDT), I/O request packet (IRP), and JC]critical IRP data. Once the port driver queues the I/O for processing, the class driver KPB JCthread is suspended.IC2 Driver's Request Complete (REQCOM) processing IC-=============================================IC[ To complete device driver I/O processing, the driver calls the routine IOC$REQCOM which JC"carries out the following actions:IC^ o If error call Mount Verification (clearing pending and in progress) Depending on specific JC(error, Mount Verification may be startedIC3 o Insert IRP in "correct" post processing queue ICc o If Mount Verification in progress, determine if entry is already in queue. If not, start Mount JC VerificationICW o If Mount Verification not in progress, attempt to dequeue next entry in unit queue JC(UCB$L_IOQFL). IC+ o If queue is empty, clear busy and exitICW o If entry dequeued, call IOC$INITIATE (see above) Block unwanted I/O Initiation from JCREQCOMIC)=========================================IC` The VMS I/O executive assumes that all drivers are single threaded drivers, and the a call to JC[REQCOM means the driver has just completed its one and only outstanding unit of work, and JCatherefore is capable of having new I/O initiated to it. For a SCSI multi-threaded class driver, JC_this presents a problem in that internally the driver is consider busy, but externally (based JCMsolely on I/O completion and UCB$L_IOQFL), new I/O may be started and/or the JCXUCB$V_BSY bit will get cleared, which may allow future I/O, or worse Mount Verification JC`I/O to be started. Prior to returning control of I/O processing to REQCOM, the class busy bits JC]are tested to determine if there are any reasons why this driver does not what the UCB$V_BSY JC[cleared. If so, then "golden" IRP is checked to see if it not in the UCB$L_IOQFL, and then JCplaced there if not.IIC$Draining I/O for single threaded I/OIC%=====================================IC\ Within a multi-threaded class driver, there exists I/O functions where a required level of JJCVsequentiality is associated with them (IO$_NOP, IO$_UNLOAD, IO$_AVAIL). To implement JCcthis functionality, the class driver must transition from a multi-threaded to a single-thread I/O JC/processor to perform the specific operation. ICRThe transition from multi-threaded to single-thread operation is done as follows: ICN o set a class busy bit, this will prevent any new I/O's from being started. ICO o If the current I/O is the only I/O active, return as we are single-threaded ICO (Note: After the current I/O is complete, the class busy bit will be cleared !IIC' and multi-threaded I/O will continue).ICc o Since there are more I/O's active then this one, place this I/O on the ! drain queue, and stall JCwaiting for I/O's to complete. ICM o As each active I/O is competed, the following sequence of check are made: IIC- Is a busy bit still set?IC IC(- Is the only I/O's left, draining I/Os?IC IC)- Are there any I/O's on the drain queue?IC IC?- If so, restart the threads associated with the draining I/O'sICO Note: After the draining I/Os are complete, the class busy bit will be clearedIC IC& and multi-threaded I/O will continue.IC Cancel I/OIC ========== ICT On behalf of layered subsystems above DKDRIVER (MSCP, SHADOWING, etc.), there is a JCWneed to cancel an I/O in progress. The function IO$_CANCEL, locates the associated I/O JC_request and if found 'marks' the SCDRP with a cancel flag. At various points throught the SCSI JCYClass Driver, this bit is tested and if set the I/O is canceled with a SS$_CANCEL status.IIC4Mount Verification of SCSI devices (disks and tapes)IC3===================================================IC] Mount verification is a sequence of events, which if successful should restore 'normal' I/O JCYprocessing. Within the SCSI subsystem, various anomalies in I/O processing, (bus resets, JCdtimeouts, bus errors, etc.), ! disrupt current I/O, (and maybe all outstanding I/O's), such that a JC`mechanism is needed to methodically and reliably restore I/O processing. A golden rule is that JCeif the SCSI I/O failure is transient in nature, it should be retried after successful completion of JCMount Verification.IC NOTE: IC]Due to the variety of SCSI port driver implementations and lack of overall SCSI port driver JC_knowledge by a single individual, implementation of a tiered approach to resolve I/O anomalies JCEwas considered to be a deliverable of unknown complexity for SCSI-2. ICdAlso if an individual 'tier' was to fail to restore normal I/O processing, the transition from tier JC_to tier, would ultimately result in a 'last chance' tier, would must at all costs resolve the JC`problem. This is Mount Verification. At this point in time, consideration for adding individual JCZtiers at key points in the SCSI subsystem can be considered to address specific failures. JC[Typically these points are the places marked by 'IF_CANCEL" macro and as a direct function JCZof implementing IO$_CANCEL as an atomicly, verse the deferred method as is done today via JC^the IF_CANCEL macro functionality. The risk in doing this is bounded, since that there is now JC[a 'last chance' tier in place. Mount Verification as implemented for SCSI is a BIG HAMMER JCTsolution. The cost in I/O serialization, and SCSI I/O database cleanup is vast. IC NOTE: IJC]Also these discussion have strong reference to DKDRIVER, since it is the only multi-threaded JCZclass driver. This implies that port driver callbacks to set class busy bits are NOPs for JCUMKDRIVER and GKRIVER. As noted above, Mount Verification is called from I/O request JC[completion processing (REQCOM), by disk and tape class drivers whenever and I/O operation JC`completes with an error status. Initial mount verification processing determines if the current JC]I/O can be recovered, (based on I/O status values, whether its a server I/O, shadowing I/O, JCaetc.). If the I/O is not recoverable, or there is another subsystem (MSCP, Shadowing) is better JCdsuited to recovering the I/O, control is return back to I/O request completion for additional post JCprocessing operations. ICV Note: A consistent, documented policy should be created and agreed upon between all JCSOpenVMS drivers which implement some sort of recovery, so that Mount Verification, JCV"shadowing's" volume validation, MSCP Server's failure over, and other I/O subsystems JC[behave in a predictable manner. This was not done, although hinted to during OpenVMS Alpha JCXV6.2 development. The functional/design specification for the 'new' QIO Server project, JC`should be a good source of information for these, as 'they' must resolve this for a consist and JC`correct implementation. If the I/O has the possibility of being recovered, either internally by JC\port driver, up above by the class driver, it should be done, keeping in mind issues around JCRDK_DRAIN, IO_CANCEL, CLASS_BUSY bits, etc. If all else fails, the recovery can be JC`accomplished using mount verification, then a recovery thread may be initiated (if not already JC`in progress), or a mount verification pending status is set, such that when the device becomes JCZquiescent, mount verification can be initiated. Regardless of how mount verification gets JC=initiated, the rules of driving it completion are specific. IC\ o The device must continually assert a busy status (UCB$V_BSY) until Mount Verification JCFis completed, or the device (UCB) is taken off-line after MVTIMEOUT. ICe o Depending on the event (I/O failure, Bus Reset, etc.), typically the first failing I/O triggers JC_Mount Verification. Subsequent failures typically reconfirm this failure, and are dismissed by JCthe pending bit being set. ICZ o For single threaded device drivers, the EXEC I/O supplied routine (IOC$MNTVER) does JC_the correct things in regards to triggering Mount Verification. For each I/O which fails, (and JCathis I/O is not served), it reinserted it into the devices unit queue (UCB$L_IOQFL), in 'exact' JC\order in which EXE$INSIOQ would have placed them there. For served I/O, the failure is not JCThandle by EXEC I/O's mount verification processing, but allowed to continue through JC4post-processing to be handled by the serving node. IC_ o For multi-threaded device drivers, a special version of IOC$MNTVER is need to transition JC^the driver from multi-thread, to singled threaded mount verification processing. For each I/O JCfwhich fails, (and this I/O is not served or shadowed), it reinserted it into the devices unit queue JCV(UCB$L_IOQFL), in 'exact' order in which EXE$INSIOQ would have placed them there. For JCTserved or shadowing I/O, the failure is not handle by EXEC I/O's mount verification JC\processing, but the I/O is allowed to continue through post-processing to be handled by the JCYMSCP or shadowing subsystem. If I/O is being handled by the class driver, a CLASS BUSY JC_bit is set, MSCP Mount Verification processing (if this node is the serving node) is invoked. JCYNote: It is a violation of Mount Verification processing for a Mount Verification IRP to JCWretrigger Mount Verification. The sequence of I/O operations which by their successful JC^completion will eventually restore a device to normal operation, (ie., the clearing of Mount JC\Verification in progress), must not start until the device is quiescent. Upon completion of JCcMount Verification processing, if successful multi-threaded I/O operations are restarted, else all JJC;I/O's are failed to I/O post processing with SS$_VOLINV. IIC Class driver Busy processing IC" ================================ IC Note: IC_ The class busy bit solution is a 'well' proven mechinism for addressing and managing a driver JCXprocessing state. All failures detected by this mechinism (either BUG_CHECKs, or a hung JC`system) are easy to diagnose and used in part with the class busy bit traceing during debug and JCXdevelopment, it offers a 'very' supportable mechinism. Also it is a replacement for the JCW'RWAITCNT' mechinism implemented in the Cluster I/O subsystem, which is proven hard to JCYmaintain, understand, support and diagnose. When a $QIO system service posts an I/O, the JCY$QIO sets the UCB$M_BSY (busy) bit. The class driver STARTIO routine clears this bit for JCdI/O requests that it queues to the port driver. If a $QIO posts another I/O before the queued I/O JC`completes, the $QIO again sets the busy bit and the class driver subsequently clears it again. JC[Clearing the busy bit in STARTIO bypasses the system wait cycle for I/O completion. This JCcsequence can continue until a condition occurs that causes the class driver to leave the busy bit JCaset (for example, error recovery in progress or mount verification). In such cases, a $QIO will JCVqueue the new I/O to the UCB busy queue (pointer is UCB$L_IOQFL) as in the standard JC]OpenVMS driver sequence. There are several cases where the class driver would not clear the JCUbusy bit, all of which are summarized in the UCB$L_CLASS_BUSY longword described in JCcbelow. If any of the bits are set in this longword, the class driver will not clear UCB$V_BSY. JC_As I/O completes, the port driver resumes the appropriate class driver thread to complete the JCbI/O to the user process. At I/O post processing time, the class driver checks for I/O on the UCB JC_busy queue using UCB$L_IOQFL. If this list is not empty, the class driver initiates the next JCZI/O on the list to the STARTIO routine. The STARTIO routine may then post the I/O to the JCaport driver. If STARTIO clears the busy bit, the class driver continues to process the UCB busy JCdqueue until the list is empty or it encounters a request that does not clear the busy bit. The JCUUCB$L_CLASS_BUSY longword is a bitmask of reasons why the class driver should leave JC]UCB$V_BSY set, and subsequently not initiate another I/O until the conditions which set the JCdbits are no longer are valid. Some of the bits are set based on specific routine and/or functions JC[being executed, which by there very nature must be single threaded. Other bits are set by JCbcallbacks from the SCSI port drivers, to indicate that a transient condition exists and for flow JCdcontrol reasons. The mechanisms regarding setting, clearing and testing of the class busy bits JCdare architecture specific, but the actual usage of each bit is "implementation" specific, and need JC]not be discussed here. Note: These bits must be altered by interlocked bit instructions, to JCWsynchronize potential IPL 31 access to UCB$V_CB_INIT during a powerfail. This does not JCPrepresent a performance problem because no alterations occur in mainline paths.IIC% Port driver common code flow controlIC% ====================================IC[ The processing of I/O requests from the SCSI class drivers to the SCSI port drivers, is JCSmodeled after the OpenVMS $QIO / $SYNCH model, where an I/O is issued and then the JCathread of execution must call a synchronization routine to wait for the I/O to complete. Due to JCWthe queuing nature of the SCSI I/O ports and its associated threading package (KPB's), JC\supported is provide for synchronized completion of I/O (SS$_SYNCH status), such the a call JC0to synchronization routine may not be required.IJIC$Port driver queue depth flow controlIC& ====================================ICe I/O's will continue to be sent to the SCSI I/O ports, until such a time as the class drivers have JCeno more I/O, or they are stalled based on events occurring at either the class driver level or port JC]driver level. One event which controls overall class/port driver flow control is queue depth JC`management. A class driver sets and/or adjusts a value which is equal to the desired "running" JCRqueue depth of a SCSI device (via SET_CONNECTION_CHAR). I/O will accepted from an JC]associated class driver as long as the total number of I/O's don't exceed the current 'queue JCddepth' value. When the value is reached, the port driver (via a callback to the class driver), will JCbset a busy bit in the class driver which will stall "new" I/O's from being started, although the JC\threading model will allow "in progress" I/O's to still be initiated. Today, as each I/O in JC^progress is completed, the total number of active I/O's will be compared to the desired queue JCddepth, and if the difference (including underflow) is large enough, the port driver (via a callback JC^to the class driver), will clear a busy bit in the class driver which will start "new" I/O's. IC\ This mechinism works, but it is based on a hard-coded table and does not take into account JC[differences in 'queue depth' across each vendor's TCQ disks. I would strongly suggest that JC^driving this functionality off of the 'queue full' SCSI status is the most optimal solution. ICZ NOTE: It is in my opinion that 'queue full' processing today is a weak point in out SCSI JCimplementation.IIC+ Port driver ACA and SCSI-1 flow controlIC'=======================================ICV Both ACA (the processing of a request_sense command after an CHECK_CONDITION), and JC_non-queued I/O, require the SCSI port driver to do only one I/O at a time. In both cases after JC]the I/O is issued, the class driver is already stalled behind a CLASS_BUSY callback, and no JC^future I/O will be seen. At the time of I/O complete, adjustments to the CLASS_BUSY bits will JC\be made, which will let through another I/O, which will again re-evaluate class of I/O. The JC_re-evaluation processes (at least for ACA I/O), is the method which transitions the SCSI port JCLfrom single-threaded ACA operations, back to multi-threaded I/O operations.IIIIAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€b€£€²€£€€C#Appendix B: SCSI Knobs and SwitchesIAIAb€‚ Paragraph£€ €£€Ô$P«€ €¡€"€IAb€‚Include Paragraph Tab-2£€ €£€Ô$P«€ €¡€"€b€£€²€£€€xC15.0 SCSI Knobs & SwitchesIAC EVMS::RLORDIICSCSI Knobs & SwitchesIAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C15.1 PROBLEM STATEMENTIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICRWhat SCSI knobs and switches should be made controllable for starters? (There's a JCYgood deal in the documents about things to control, but also how does one set profiles?)IAJb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C 15.2 OverviewIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICXFirst of all, a better title for this investigation would be "Controls and Indicators", JC\and I'll use that phrase and those terms off and on throughout the document to distinguish JC`those things that can be pushed, flicked or turned from those things that can be looked at or JCread.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICSBy "Knobs and Switches" or "Controls and Indicators", I mean that set of operating JCacharacteristics belonging either to a driver, a device or LUN which persists across multiple I/O JCWrequests or SCSI commands and which is able to be altered from outside the drivers at JC run-time.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICUThe set of available controls and indicators can really only be defined in a general JC`way until the architecture takes shape; however, it does make sense to think about it ahead of JC[time so the required support can be built right in instead of being grafted in afterwards.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICOOne of the questions that came up is how much control we really need; how much JCZwill really be useful for tests, diagnostics or workarounds, and how much just adds more JC[maintainance or performance overhead than it's worth? It would be easy to get carried away JC^with this and add functionality that would simply never get used; we have be careful to weigh JCAthe value of each control, and not just put it in because we can.IICNHopefully, this document asks most of the questions which must be answered in JCZimplementing any SCSI Knobs and Switches functions so the scope of work can be accurately JC evaluated.IIC815.3 WHY KNOBS & SWITCHES IS DIFFERENT THAN IO$_DIAGNOSEIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICLUsing the IO$_DIAGNOSE interface we can send any SCSI command to just about JC[any device. (It should also be part of the port interface that one can issue a port driver JCWIO$_DIAGNOSE to allow passing a command to any SCSI ID/LUN, whether it exists or not.)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICUHowever there is currently no way of controlling the run-time characteristics of the JCfdriver, of retrieving statistical or diagnostic information collected by the driver, or of initiating JCWbus events which are message (Bus Device Reset) or signal (Bus Reset) driven. Knobs & JC'Switches would perform these functions.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C,15.4 CONTROL AND INDICATOR MODELS & EXAMPLESIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICVThese are the types of controls and indicators it would be useful to have. I tried to JCWuse names which would summarize both the format of the data and how it can be accessed JCc(whether you're reading it or writing it). In practice, sometimes a control and an indicator will JCashare data - for instance, when you flick a switch to turn TCQ on or off, that switch will write JCZthe same data you get back when you read the TCQ Idiot Light. This may seem like too much JC^abstraction, but think about the fact that in the current implementation there are some data JCLfields whose ownership and access are either unclear or a complete mystery.IAb€‚Include List o£€ €£€Ô$P«€ €¡€"€Ca o LED / Idiot Light / Annunciator - an on or off, true or false, enabled or disabled indicator; JCYexamples are: is Tagged Command Queuing enabled? Are Disconnects approved? Is the device JCSonline? Should the driver try to negotiate SDTR? Some but not all LEDs will have a JCcorresponding Switch.IAJb€‚Include List o£€ €£€Ô$P«€ €¡€"€C\ o LCD / Gauge / Meter - an indicator of a variable value. Since some of the values we work JCXwith may be masks of bits, we may want to go with the LCD model, because Meter has some JC_analog connotations which imply it's only as accurate as the person reading it; examples would JCYbe disconnect timeout, DMA timeout, selection timeout. Some but not all LCDs will have a JCcorresponding Knob.IAb€‚Include List o£€ €£€Ô$P«€ €¡€"€C_ o History / Record - can be any type of data collected by a driver, such as error counters, a IJCGrecord of phase changes, counts of I/O functions or SCSI commands, etc.IAb€‚Include List o£€ €£€Ô$P«€ €¡€"€C[ o Knob/Dial - a control used to set a numeric value; each Knob would have a corresponding JCWLCD so a user could determine it's value; examples would be the same as above for LCDs.IAb€‚Include List o£€ €£€Ô$P«€ €¡€"€C_ o Switch - an on/off control, like a light switch; each Switch would have a corresponding LED JCSso a user could determine it's state; examples would be the same as above for LEDs.IAb€‚Include List o£€ €£€Ô$P«€ €¡€"€Ca o Button - a control which initiates an action once per activation; examples would be bus reset JCZor bus device reset - if we really wanted to go nuts, either could have a countdown timer JC associated IC@with it to allow psuedo-random bus catastrophes to be generated.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C*15.5 CONTROL & INDICATOR OWNERSHIP & SCOPEIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICQThere are several entities which may be logical choices for ownership of Knobs & JCcSwitches - in descending order of scope there is a class driver, port driver (considered the SCSI JCVbus), device (ID) and LUN. It would make sense to duplicate Some Knobs & Switches in JC_several of these levels, where each lower level would only add a feature (such as SDTR) if the JChigher level defaulted on it.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICRThere's another dimension to scope that should be considered: take a feature like JC^TCQ, which we may want to enable or disable for an entire bus, a device or just a single LUN. JCcShould we provide both a way of disabling it completely and of disabling it by default - that is, JC,unless it's overridden for a single command?IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICQIn the first case, absolutely nothing would go out with a tag in the second, the JC`default would be to send it out with no tag, but if an I/O request explicitly requested tagging JC$then it would override the default.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICVThis type of absolute vs. default functionality will depend at least in part on where JCbthe decision to send a command tagged is made; if the normal behavior is for the class driver to JCYallow some lower level or common code decide whether something should be tagged or not, JCbthen having both Switches would make sense; if it's normally the class driver's responsibility to JCZdecide whether something is tagged or not, then an abolute Switch is probably sufficient.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C&15.6 KNOBS & SWITCHES ACCESS & MODULESIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICPAccess to the Knobs & Switches is obviously going to be through an I/O function JCPcode. I had assumed that we could use IO$_SETMODE and IO$_SENSEMODE to provide JC[this access, but it appears that these are used by MKDRIVER, so changing their meaning at JCbthis point would probably not be a good idea. Rather than spend time at this point trying to nail JCTdown what we can use, I'm going to say that we'll use IO$_DIAGNOSE with one or more JC modifiers.IAJb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICQEach driver, both port and class, would have to provide FDT entry points, but it JC[should be possible to implement a large portion of the Knobs & Switches functionality in a JC\common module or set of routines. In addition, it should be possible to implement "generic" JC*routines for a lot of the Knobs & SwitchesIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICTThere are two issues to be settled pertaining to the data which is to be managed by JC%Knobs & Switches: access and storage.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICOIn considering Access we have to think about the granularity with which we may JC-want to change or read Knobs & Switches data.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICPWe could use an aggregate read-modify-write scheme similiar to the way in which JC]the current implementation manages connection characteristics; read a big block of logically JCBrelated data in, modify what you don't like and write it all back.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICLWe could also implement a scalar scheme which allowed characteristics to be JCcmanaged individually - say allow them to be turned on, turned off, reinitialized, cleared, toggled JC]or set to a specific value. This scheme would require more decoding of QIO parameters, but JCKby using an itemlist to transmit data in and out, this can readily be done.IIICNIn considering Storage, we would like the data in an easy to access form, not JC[necessary grouped into an opaque quadword of bits, ideally collected up into one module to JC_make it easy to find in SDA. As much data as possible for any particular type of entity should JCabe in a common module - for instance, it would be nice if we could have all class driver Knobs JC]& Switches data in a single compile-time module shared by all class drivers. Driver-specific JC[data would be in a driver-specific module, but identified by a common name so it could be JCOlocated and manipulated by common code in same way that SCSI2COMMON determines JCCwhether or not some optional port driver routines are present now.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICWAnother thing to consider in Storage is that we'll probably have to take a lock out to JC]read or modify some or all of the data behind a Knob or Switch; the bigger the block of data JCbaccessed at any one time, the more likely we'll hit that portion of the data which is protected JC_by a lock. On the other hand, it may be harder to group scalar data items which are protected JCby a single lock.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICWExcept for test applications which might use the interface frequently to test specific JCaSCSI functionality or, for instance, evaluate the effect of TCQ on a given device, I don't think JCbthat the interface itself will be much of a performance drain - simply because it won't normally JC]be executed that often. For that reason, if implementing access to individual parameters was JCZthought to be worthwhile in general, I don't think that performance alone would be a good JCreason to discount it.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C5.7 ATOMICITY OF CHANGESIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC"The following two questions arise:IIICIDo we want to guarantee that no single I/O function or SCSI command will JC-incorporate only some of an aggregate change?IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICSDo we want to guarantee that Records or Histories will not contain partial updates JC4(between I/O functions or SCSI commands) when read?IAJb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€IICMMany of the controls contemplated for the SCSI subsystem affect the way SCSI JC[connections are made and broken, use of the bus, and SCSI features which a device might be JCbexpected to support sensibly. It is not reasonable to expect these all to be made in a single I/O JCZcall or to require some inner mode locking. These are privileged commands and rather than JCZdefining a new synchronization method, simply requiring a device to be allocated (or that JCXsomeone needing to override such a requirement assure manually that the device is idle; JC^changes to system disks could require this) will suffice to ensure that SCSI toggles cause no JC_problems. Rather than requiring partial updates not to be in Records or Histories, documenting JC[where such partial information may appear will suffice. It is expected after all that SCSI JCUadjustments will be carried out by, or at the behest of, fairly knowledgeable people.IIC5.8 IMMEDIACY OF CHANGESIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICRDo we want to guarantee that no I/O function or SCSI command will be issued after JCYa change without incorporating those changes? This would mean that queued commands which JC\didn't incorporate the change would have to somehow detect and incorporate them at the last JC\minute. This appears to be overkill, and represents a guarantee that need not be offered to JC applications.IICOAgain, the design center of SCSI changes is that they be applied by privileged JC`people to basically idle SCSI devices or subsystems. It will be necessary to have a function to JCYcause changes to be "committed" (probably reinitializing the SCSI subsystem) on command, JC8but this too may be designed for use in idle situations.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C05.9 INITIAL BUS, LUN, DEVICE AND DRIVER PROFILESIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICRThis section considers whether or not it will be necessary to provide some way of JCcallowing a user to specify a non-default Knobs & Switches profile for a class driver, port driver, JCdevice (ID), LUN or bus.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICVThere are some similiarities between the problem of establishing initial profiles for JC[each of the entities which own Knobs & Switches and that of establishing the initial IQ or JCcapabilities of a SCSI device.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICVMost of the time it will be safe to boot with a set of baked-in defaults. However, as JCXwith device configuration where there is a chance that just sending a common message or JC\command to a SCSI device will cause the system to hang or the device to become permanently JC\inaccessible, meaning that we would need some way of identifying that device and simply not JC\doing whatever it is that causes the problem, there may be cases where it's necessary for a JCsupport SCSI clusters and/or target mode. This allows us to beIIC:selective of the adapters on which we want to provide thisIIC capability.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IChandled by the port driver would be passed to the class driverIICthis processor class driver would be connected at the adaptersIIC APB---> SYSBOOT---> SYSBOOT---> EXE$INITIIICsoftwareIIIIIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICprocess stages:IIIC$---> Swapper---> SYSINIT---> StartupIIICprocess process processIIIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICC(a) In EXEC_INIT image: When the boot device is a SCSI device, its IIC?runtime driver is to be loaded. Generally, a runtime driver is IJIC:located twice - specified in CNBTDRIVER, and get again in IIC([SYS]INIT_IO_DB/IOC$FIND_RUNTIME_DRIVER.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICAEXE$INIT calls [SYS]INIT_IO_DB to load driver executive image of IICIOGEN$XMI_CONFIG, IOGEN$PCI_CONFIG, IOGEN$XMI_CONFIG, ..etc.).IJIC=Since we are interested in SCSI devices only, I noticed that IICAIOGEN$SCSI_CONFIG is called by various bus configuration modules IIC>that each one can exist in many system configuration routines.IICDFor example, IOGEN$PCI_CONFIG is listed in the ABMs of SYS$ICBM_09, IIC3SYS$ICBM_0C, SYS$ICBM_0D, SYS$ICBM_0F, SYS$ICBM_11,IIC SYS$ICBM_14, and SYS$ICBM_15.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€C ICDTo do bus configuration, its Bus Array (adp$ps_bus_array) is walked IICCto attempt to configure bus devices. I looked up IOGEN$TURBO_CONFIGIIC>and here is its process description lifted from code comments.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€C ICE"The Turbochannel ADP Bus Array contains an entry for every TC deviceIC ICAin the system. For Flamingo, this includes a maximum of 6 user TCIC ICDoption slots and 3 integrated TC options (integrated SCSI asic, CoreIC ICDI/O, and CXTurbo graphics). Sandpiper and other Turbochannel systemsIIC@may have a different mix of option slots and integrated options.IC ICEDevices in the user slots are generally single channel adapters, and IIC?usually share the Turbochannel ADP. On Flamingo, the integratedIC ICASCSI asic and Core I/O have their own ADPs and bus arrays. As we IIC>go through the Turbo Bus Array, we use the Iogen Config Table IICG(connected to the Turbo ADP) via call to iogen$find_config_table_entry IICE(.hardware_id, .turbo_config_table, config_table_entry) to determine IICAif 1) we recognize this device and 2) to identify its driver. We IICAthen determine whether the device has its own ADP or not. If the IICFdevice shares the Turbo ADP, we load a single instance of its driver. IICDIf the device has its own ADP and bus array, we load an instance of IIC3the driver for each entry in the device bus array."IIIIC@Device driver identificaiton and loading is done in bus-specificIICFroutine CONNECT_%%_DRIVER using information in an IOGEN Configuration IICTable.IC;This routine connects a specific driver, in SCSI case this IICAis the port driver, "by finding the interrupt vectors associated IICDwith the device, allocating vectors if necessary, building the item IIC8list associated with the connect operation, and calling IICD[IOGEN]LOAD_DRIVER/SYS$LOAD_DRIVER to perform the actual operation. IICAIf the SCSI flag is set for the driver just loaded, it means the IIC=driver being loaded is a SCSI port driver, and then the SCSI IICEautoconfiguration routine IOGEN$SCSI_CONFIG" is to be called to load IICits class drivers.IAb€‚Include List (#)£€ €£€Ô$P«€ €¡€"€C` (2) After a SCSI port driver is located, the next step is to configure the port. There are two JCZsituations that the configuration of SCSI devices is done earlier than STARTUP time: when JCUdevice is the boot device (EXEC_INIT), or device is in a VMScluster or a SCSIcluster JCa(SYSINIT). But, of all three situations, the configuration of port or devices is done by routine JCRSYS$LOAD_DRIVER (IOGEN$CONNECT,...) which in term executes the following routines JC in order. IAJb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC IOGEN$LOADIIC IOGEN$CONNECTIIC IOGEN$INIT_DBIICIOGEN$INIT_MAPPINGIICIOGEN$INIT_CONTROLLERIICIOGEN$INIT_UNITIIIIC?But at EXEC_INIT time, [SYS]IOSUBNPAG/EXE$INIT_DEVICE_PWRUP is JChcalled to call device drivers (both class and port drivers) at their unit and controller initialization JC routines viaIIC7CALLS #2,G^IOC$CTRL_INIT and CALLS #1,G^IOC$UNIT_INIT. IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICETo not alter the current VMS initialization scheme, but making minor IICEenhancements to SCSI subsystem's initialization, for example to send IICESDTR message to a SCSI adapter or to capture certain INQUIRY data in IIC database, IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICAat EXEC_INIT time: there is no way to issue $QIOW to request SCSIIICCcommand through the port driver because no process exists to do so.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICDat SYSINIT time: both [CLUSTER]STACONFIG and [SCSI]SCSI2AUTO are to IICAbe altered. Currently, STACONFIG uses $QIOW_S to request INQUIRY IICDthrough SCSI2AUTO. It should be easy to expand these modules to add IICthe SDTR message handler.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICEat STARTUP time: the INQUIRY command is handled in IOGEN$SCSI_CONFIG IICCroutine to the port directly before any SCSI device is configured. IICG"This routine is responsible for autoconfiguring all supported devices IICAon a SCSI bus. If there is no bus array associated with the SCSI IICFport's CRB, it allocates and initializes one. It then makes a working IICFcopy of this bus array on the stack so that it doesn't have to bounce IICBback and forth between exec and kernel modes. It makes two passes IICEover this copy of the busarry. The first is to poll the unidentified IICDSCSI bus id's to find what is there (via INQUIRY). The second is to IICDconfigure those devices found in the first pass which are supported IIC by default." IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC6.2.6 KZPSA, PCI-SCSI And KZTSA, Turbochannel-SCSI (PKSDRIVER)IAb€‚Include Title Level 2£€ €£€Ô$P«€ €¡€"€C"6.2.7 XZA, XMI To SCSI (PKZDRIVER)IAJb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C56.3 BUS QUALITY INFORMATION DERIVED FROM SCSI DEVICESIAb€‚Include Title Level 2£€ €£€Ô$P«€ €¡€"€CXSome SCSI logging commands are also useful for use by a quality monitor. However, these JC[commands can be issued using the IO$_DIAGNOSE interface, so that architectural support for JC\them need not be specially provided. Such a monitor is likely to be needed for customers to JCXgauge how well their bus is working and whether any SCSI parameter tuning has helped or JC*hindered their system's operation however.IC66.3.1 Send Diagnostic SCSI Command (Mandatory Command)IAb€‚Include Title Level 2£€ €£€Ô$P«€ €¡€"€C@6.3.2 Receive Diagnostic Results SCSI Command (Optional Command)IAb€‚Include Title Level 2£€ €£€Ô$P«€ €¡€"€C/6.3.3 Log Sense SCSI Command (Optional Command)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC,Saving parameters with Log Sense is optionalIAb€‚Include Title Level 2£€ €£€Ô$P«€ €¡€"€C06.3.4 Log Select SCSI Command (Optional Command)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICHIf a device implements Log Select, then it must also implement Log SenseIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICMPage 0 shows supported log pages (mandatory page if Log Sense is implemented)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC1On page 0, page numbers appear in ascending orderIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC0Page 1, Buffer over-run/under-run page (8.3.2.1)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC1Page 2, Error counter page (write) page (8.3.2.2)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC0Page 3, Error counter page (read) page (8.3.2.2)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC8Page 4, Error counter page (read reverse) page (8.3.2.2)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC2Page 5, Error counter page (verify) page (8.3.2.2)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC'Page 6, Non-medium error page (8.3.2.4)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC*Page 7, Last N error events page (8.3.2.3)IC^6.3.5. By recording controller error information in a set of counters, the SCSI system should JCVprovide data which can be used by SCSI quality monitors. The cost of such counting is JCdnegligible (all the more so since it occurs on error paths) but its value in system operation could JCbe considerable.IIAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€Ib€£€²€£€€CAppendix H: SCSI IQIb€£€²€£€€xCSCSI Device IQIAAC EVMS::RLORDICO-------------------------------------------------------------------------------ICSCSI Device IQsIAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C 1 PROBLEM STATEMENT (NUMBER 4)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICUIs a single level selector sufficient for matching device "SCSI IQ" or peculiarities JCXwithin class level? Or are there examples where additional capabilities lists should be JC[maintained per device? Suggest forms for these to take if needed. Can one create a single JC]number (or a single number per VMS function) as suggested in the architecture to be a valid JJCWrepresentation of a SCSI IQ, or must more dimensions be used? If so, what? (Can a SCSI JCdevice be an idiot savant?)IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C 2 WHAT THIS DOCUMENT IS FORIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICTThe notion of characterizing a device in terms of it's IQ is intended to provide us JC]with a method of ensuring that we don't hang a system or cause a device to be marked offline JC](and so be made permanently inaccessible) if it can be avoided simply by not asking it to do JCXsomething that we know it doesn't do very well (meaning that it doesn't do it our way).IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICKThe goal of this first pass document is to describe the issues involved in JCZestablishing and using an IQ value for a SCSI device so we can weigh the cost of the work JC[involved against the likely payback in reduced customer complaints and driver maintainance.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C 3 CHARACTERIZING A DEVICE BY IQIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICSIn practice, what we've observed is that devices typically have problems with only JCVa few of the things that we ask them to do - TCQ, SDTR, 10-byte MODE SENSE, etc. The JCXsymptoms we've seen have ranged from a device being marked offline to process hangs to JC[meaningless errors being logged to bus hangs to a device returning BUSY permanently to a JC]device trying to send us thousands of bytes of data when we really only wanted a hundred or JC`so. As we ask more of devices - for instance, if we ever get around to implementing bus device JCWreset - I suspect that we'll find other things that particular devices don't do well.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICQSome of these problems are temporary - they're eventually fixed in firmware, and JC[some are forever because the device is just never going to get new firmware. Either way we JC[may end up having to deal with a known problem for the life of a firmware revision, and in JCcsome cases that will be for the life of the device. This is a good reason to do whatever we can to JCJget devices for testing early, ideally even before they're even released.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICRThe initial idea was to group certain functionality together and assign a certain JCYnumber of IQ points to each group; starting with an IQ of 0, when a device proved itself JC_capable of performing all of the commands in a group successfully, it would have that group's JCcpoints added to it's IQ. In practice this would probably be implemented as a bit in a capabilities JC7mask, with more complex groups getting the higher bits.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICQA problem with this is that, as the opening question suggests, a SCSI device may JCaend up being an idiot savant. It may perform 5 out of 6 functions in a group, or it may perform JCYcomplex functions flawlessly but choke on something simple. The fact is that we're often JC^dealing not with correct implementations of someone else's interpretation of SCSI - sometimes JC\we're just dealing with bugs, and so our complexity scale goes out the window. Bugs in some JC`functions are more likely to be detected early - for instance, everyone in the world issues an JC`INQUIRY to a device, so it's probably going to be found out pretty quickly - but once it's been JCareleased we have to deal with it. The point is that our scale of complexity probably won't stand JC^up to bugs, which are apparently random. Also, if we group things together like this, we lose JC`the resolution which is necessary to allow us to work around that one function in a group which JCa device doesn't handle well.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICSTherefore device IQ should actually be a capabilities mask, most likely at least a JCXquadword. It would still make sense for us to assign higher bits to what we see as more JJC\complex functions for our own use, though. (In fact, handling various timeouts where these JCFmay have to be custom treated makes the structure more complex still.)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICKWith that done, it would be possible to have an application which uses the JCYIO$_DIAGNOSE interface to cycle through all of the commands and messages we need (on an JC[unmounted or foreign-mounted device) and build up the mask. The goal would be to identify JC`specific areas in which a device had problems; if we didn't already have a workaround, and if JCcthe device was not actually available in the field yet it might be possible at that point to work JC]with the vendor to get the problem fixed prior to release and eliminate the problem without JCEwriting a single line of code or assigning that device an IQ at all.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICVIf a device tells us up front that it doesn't do something, we should take it at it's JCVword: INQUIRY data tells us whether it does wide 16, wide 32, AEN, TCQ, synchronous, JCalinked commands, etc. - mode page bits identify other capabilities. We should take advantage of JCbany information like this which is available (some things are not identified, like whether or not JCbthe device does disconnects), and if a device doesn't explicitly tell us it supports something we JC should assume that it does not.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C, 4 TAKING ADVANTAGE OF KNOWING A DEVICE'S IQIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICVIt doesn't make much sense to identify a device's limitations, however, if the things JCeit can't do are things that we just can't work without. For instance, if we find out that it doesn't JCOdo CHECK CONDITION correctly the device should probably be considered unusable.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IC>So there are two types of things we need to identify in an IQ:IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICSCommands, messages or functionality for which althernate methods are available; if JCZwe can't do 10-byte Mode Sense (an optional command) we know we can fall back to a 6-byte JCacommand (with the possible risk of a truncated page, which is another problem altogether); or if JCFthe device doesn't do bus device reset we can fall back to bus reset.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICQCommands, messages or functionality which are optional; if the device doesn't so JC^SDTR we just won't negotiate it; if it doesn't do TCQ we just won't send it any tag messages.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C! 5 MINIMUM LEVEL OF FUNCTIONALITYIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICMAs a minimum level of functionality I'd suggest the following, all performed JCVnon-tagged and asynchronously. This would ensure that a device is at least capable of JCidentifying itself.IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C 1. INQUIRYIAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C 2. REQUEST SENSEIAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C 3. START UNIT (disks)IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C 4. TEST UNIT READYIAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C 5. MODE SENSE (6-byte)IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C* 6 DEVICE IDENTIFICATION AND IQ ASSIGNMENTIAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICQWhen a device is first detected, it should be assumed to be a genius, capable of JC[anything and everything; it would start off with a perfect IQ. Successful completion of an JCZINQUIRY command would provide us with the information that we would need to look it up in JJCba driver-specific device table, which would identify a device by peripheral device type, product JCid and product revision.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICTIf the device was not found in the device table then we could assume that it had no JCNknown problems; we'd use INQUIRY and MODE SENSE data and the results of other JC4commands (such as 10-byte MODE SENSE) to turn bits b€£€²€¢€CoffAC in the mask.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICSIf the device was found we'd assume that it had been characterized already and use JC]the device mask in the table; note that here we would probably not want to trust the INQUIRY JC\or MODE SENSE data because for all we know the reason the device is in the table is because JCcsome or all of this data is incorrect. This implies an all-or-nothing approach to characterizing a JCdevice.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICOI know that VMS is moving towards implementation of a registry; we may want to JC`investigate whether this would be an appropriate place for a table of device IQs, and if so use JC'that instead of a static driver table.IAb€‚Include Title Level 1£€ €£€Ô$P«€ €¡€"€C) 7 HOW DO WE DECIDE WHAT GOES INTO AN IQ?IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICLDevice Queries - as mentioned above, the cleanest way of determining what a JCWdevice is not capable of is to use the INQUIRY and MODE SENSE data - as long as we can JC_identify the device and have no reason to doubt this data, most devices will not need a device JCeIQ at all. If we know the device data to be inaccurate, (for instance, it says that it supports TCQ JC>but always rejects tag messages), then a device IQ is needed.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICOAnother source of information for what goes into a device IQ is our own device JC_testing - for instance, if we get 11 errors when we first mount a device we'll probably decide JCQthat we're better off not issuing that initial 10-byte MODE SENSE command at all.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICRFinally, there's information from the field: bus traces, SCSIMODE output, crashes JCICP--------------------------------------------------------------------------------IAJb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICFI'm just putting this here as a placeholder, a mechanism that might beIIC4worth thinking about later. Someday. Or maybe never.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICFWhen the SCSI bus is being scanned for devices, an array of entries isIICFused to save peripheral device type codes by SCSI ID. At this point inIICFthe boot process, error logging is inhibited. We don't want to disableIICEerror logging in the normal case when we're doing MODE SENSE commandsIICDbecause it might be be done any time, but at this point we could getIICCaway with murder. We could try a 10-byte mode sense and back off ifIIC1it didn't work, without the user ever knowing it.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICDThe downside is that it doesn't look like there is currently any wayIICFof passing information found using this process to the drivers as theyIICFare connecting a unit. But there are some very useful bits which mightIIICbe found and processed here:IIIIC:1) Should we use 10-byte MODE SENSE commands? (MODE SENSE)IIC12) Does the device support SYNCHRONOUS? (INQUIRY)IIC)3) Does the device support TCQ? (INQUIRY)IIC4) Is TCQ enabled? (MODE SENSE)IIC*5) Does the devices support AEN? (INQUIRY)IICI6) Does the device support wide transfers, and if so, how wide? (INQUIRY)IIC7) Block Size (MODE SENSE)IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICKOf course, it would still be better to have the registry available and haveIICCthe means of allowing the driver to look up capabilities when it isIICHconnecting a device. This would allow us to take advantage of experienceIICIto prevent things like bus resets or long retry sequences associated withIIC$failing 10-byte MODE SENSE commands.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€b€£€²€£€€C0Appendix I: SDTR and WDTR (Synchronous and Wide JC negotiations)IAICSTAR::S_SOMMERIICO-------------------------------------------------------------------------------IC Synchronous Negotiation BehaviorIIAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CXSome basic principles should govern the behavior of synchronous negotiation, as follows:IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€Ca1. It should first be noted that certain intelligent adapters take total control of synchronous JC\negotiation, so that software intervention in this area is not possible. Consequently many JCcprinciples below only apply to those adapters which, in contrast to "intelligent" adapters, might JCK be called "controllable" adapters with respect to synchronous negotiation.IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€CA2. Distinct pieces of information should be maintained regarding:IAJb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CU a.) (Per adapter) Whether synchronous negotiation is controllable by software. This JC4information should be maintained by the port driver.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C[ b.) (Per connection) Whether the connection is capable of synchronous transfer mode. This JCXinformation should be be maintained by the class driver (using INQUIRY data) and may be JCread by the port driver.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€Ca c.) (Per target) Status of the transfer mode for the current request. Status information should JCareflect the desired and/or actual transfer mode for the current request. Desired mode should be JCDunder class driver control and may be overridden by the port driver.IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICCNote: Class driver control should not only allow requests to switchIICrequests to switch from synchronous back to asynchronous. SuchIICDflexibility is particularly important for the IO$_DIAGNOSE function,IICCwhich RAID management software and other major consumers rely upon.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C_ d.) (Per target) The synchronous REQ/ACK offset for the current request. This value should be JCmaintained by the port driver.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C` e.) (Per target) The synchronous transfer period for the current request. This value should be JCmaintained by the port driver.IICZ Note that items (c.), (d.), and (e.) above are target-wide since the SCSI-2 spec defines JCYsynchronous negotiation parameters to be I_T characteristics, not I_T_L characteristics. JCZNevertheless item (b.) accounts for the possible mixture of synchronous and asynchronous JCAdevices among LUNs within a single target; see item (7.) below.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C_ Also note: The term 'class driver' in this discussion refers to any code which calls the port JCVdriver send-command routines. V6.2 examples of class drivers defined in this way are: JCKDKDRIVER, MKDRIVER, GKDRIVER, SCSI2AUTO, and various third-party drivers. IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C]3. In compliance with the SCSI-2 spec, synchronous negotiation should be done to synchronous JC`targets after every Check Condition and after every bus reset, since either of those conditions JC_may invalidate synchronous data transfer parameters. Note: The term 'synchronous target' here JCRrefers to a target which has at least one LUN that supports synchronous transfers.IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€CZ4. In the interest of accommodating as many devices as possible (even those which may not JC^comply with the SCSI-2 standard), the class driver should operate in asynchronous mode until JC`it can determine that the target supports synchronous transfers. The one exception to this may JCSbe QIO calls through the IO$_DIAGNOSE interface, where the caller is assumed to be JCUknowledgable and may request any transfer mode. As a side effect, a Synchronous Data JCYTransfer Request (SDTR) message will only be sent to a target which supports synchronous JCetransfers (that is, at least one LUN behind the target supports synchronous transfers). Historical JCWnote: Even though devices are expected to respond to an SDTR message (at worst, with a JCYREJECT message), in actuality some non-compliant devices may hang in response to an SDTR.IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C]5. Care should be taken to renegotiate synchronous transfer parameters only when it is truly JCVnecessary to do so -- namely, when a negotiation would cause the new parameters to be JC\different from the previous parameters, or when a negotiation would re-establish parameters JCcthat may have become invalid. In particular, "set-connection-characteristic" logic in the drivers JJC]should resist the temptation to negotiate synchronous parameters on every single call to the JC$set-connection-characteristic logic.IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C`6. Reselection logic in the port driver should determine whether the target's current transfer JC_mode parameters are valid, and renegotiate if they are not. This eliminates problems when, for JCWexample, LUN 1 gets a Check Condition (which may invalidate SDTR parameters) and LUN 2 JCWreselects before LUN 1 completes its Check Condition processing. In such a case, LUN 2 JCHwould be proceeding under invalid parameters, with undesirable results.IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C_7. Multi-LUN targets have some special considerations. In such a case there are two busses in JC_the configuration. One of them connects the actual LUNs together so that the LUNs function as JCatargets and their controller functions as an initiator; the bus itself may or may not be SCSI. JCbThe other bus in the configuration is the only one of interest to OpenVMS drivers; specifically, JCcthat bus is the one that connects the host Alpha CPU (initiator) to the controller (which in this JCbcontext functions as a target). The bus will be SCSI, and synchronous negotiation will reflect JC_agreements only between the host CPU and the controller. Synchronous attributes of individual JCYLUNs are handled internally by the controller and are not of concern to OpenVMS drivers. JCXSome controllers intervene significantly to cause SCSI commands to execute on the LUNs; JC\other controllers operate in pass-through mode. One pass-through example is tape support on JC_the HSZ: In this case, SCSI commands are passed directly through the controller and on to the JCZLUN for execution; but even though commands are passed through, SDTR messages are still JCXconfined to the Alpha CPU (as initiator) and HSZ controller (as target). So even in the JCVpass-through case, SDTRs are not appropriate to propagate to the LUN. Item (4.) above JCaexpresses the intent to operate in asynchronous mode until the target is known to be capable of JC`supporting synchronous mode. In a multi-LUN situation, however, the target is a controller with JCYno INQUIRY data of its own to report synchronous capability. Consequently, in multi-LUN JC[targets, the target may be seen as synchronous-capable if at least one of its LUNs reports JC\synchronous capability in its LUN-specific INQUIRY data. The assumption here is that, if at JCaleast one LUN is synchronous-capable, then it is highly likely that the controller will want to JCNoperate in synchronous mode across the bus that connects it to the Alpha CPU.IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€CV8. In a multi-initiator environment, the SCSI-2 spec requires that any change in SDTR JCbparameters by one initiator will place the device in a unit attention condition with regard to a JC_second initiator. The unit attention condition (and specifically, the ensuing Check Condition) JCWgives the second initiator the opportunity to renegotiate as appropriate. Consequently JC`multi-initiator issues will be resolved transparently in the course of following the principles JC+being outlined here for single initiators. IAb€‚Include List #.£€ €£€Ô$P«€ €¡€"€C[9. Additional caution must be used in tagged command queuing environments. By definition, JCUmultiple outstanding commands may reside in a device's internal device queue; before JC`renegotiating synchronous transfer mode, care should be taken to allow all current requests to JCVcomplete first. Then, once the device is free of requests, renegotiation may occur. IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CWide Negotiation Behavior IC-------------------------IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C^The discussion of wide versus narrow negotiation exactly parallels that of synchronous versus JC^asynchronous negotiation. Wide/narrow is another I_T attribute which should be conservatively JJC^assigned (ie. to narrow transfer width) for the initial stages of operation, and subsequently JCEnegotiated up to wide transfer width only if the device supports it.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€Ib€£€²€£€€CAppendix J: Memory ManagementIb€£€²€£€€xC7.0 Memory ManagementIAAC STAR::RITTERIICb7.1 Is there a better way to pass I/O to port level than the current svapte/bcnt/boff one? What JCYgeneral memory management routines are needed to translate addresses? Can we specify the JCinterface to such?IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CQCurrently the buffer used for an IO operation is described by the following data:IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€C SCDRP$L_BCNTIC Byte count of I/O operationICSCDRP$L_SVAPTEIC= System virtual address of the 1'st pte for this IO operationIC SCDRP$L_BOFFIC9 Byte offset in the page of the 1'st byte of the transferICKSCDRP$L_PAD_BCNT The pad bytecount (I'm not certain if this ever gets used)IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CbThere is an assumption that the buffer is contiguous in the process virtual space and locked into JC)memory (although not necessarily mapped).IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C_This description of an IO buffer is fairly terse. Considerable amounts of code are used in our JC*driver doing the following two operations:IAb€‚Include List #)£€ €£€Ô$P«€ €¡€"€CR1) allocating mapping resources and loading adapter specific scatter gather maps.IAb€‚Include List #)£€ €£€Ô$P«€ €¡€"€C?2) Mapping IO operations into system space for various reasons.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C%These are discussed separately below.IAb€‚Include List #)£€ €£€Ô$P«€ €¡€"€CQ1) Allocating mapping resources and loading adapter specific scatter gather maps.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€COAllocating mapping resources is supported through IOC routines IOC$ALLOC_CRAB, JCEIOC$ALLOC_CRCTX, IOC$ALLOC_CNT_RES and IOC$LOAD_MAP. These routines, JC\although cumbersome, are usable. However they only partly address the problem. Systems that JCYhave direct mapped windows do not need to use mapping registers and often manually build JC^scatter gather maps based on the process PTE's. The direct manipulations of PTE's by drivers JCshould be avoided. IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C]The decision on whether to use the direct mapped PCI window or to allocate mapping registers JC\itself requires that the driver inspect each PTE to determine if the corresponding physical JC4address (PA) lies outside of the direct DMA window. IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CaThis process could be simplified by two routines similar to those described below. (The first of JC)these may need to be platform dependent).IAb€‚Include List #)£€ €£€Ô$P«€ €¡€"€IC21) need_map_register(SCDRP *SCDRP, BOOL *need_map)IIIC:This routine would have one input parameter, the SCDRP andIIIC:one output parameter, a boolean used to return whether theIIICIO requires mapping registers.IIIC;Some investigation is still required to determine how this IJIIC5routine can be implemented given the obvious platformIIIC dependencies.IAb€‚Include List #)£€ €£€Ô$P«€ €¡€"€ICB2) get_physical_address(SCDRP *SCDRP, int offset, int byte_count, IIIIIICint *PA_ARRAY)IAb€‚Include Paragraph Tab-2£€ €£€Ô$P«€ €¡€"€IIC@This routine would use the SVAPTE field in the SCDRP to generateIIIC9the physical addresses of an IO transfer. The offset and IIIC;byte_count arguments are relative to the IO request and areIIIC3used when only part of the translation is required.IIIC=(The ioc$sva_to_pa routine already performs this function forIIICa single svapte).IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C2)Mapping User BuffersIAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C[There are a number of places most of the scsi drivers where the user's IO buffer is double JC`mapped into system space. Although this is not difficult to do it requires that the driver have JCWintimate knowledge of memory management and manipulate PTE's directly. As stated above JCfthis is not a desirable situation. Mapping of buffers is simplified by the fact that they are already JC`locked into memory. This functionality should be replaced in our drivers by a call to a routine JCPthat maps (and perhaps allocated the resources) a user buffer into system space.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€C'This routine would look something like:IAb€‚Include List #)£€ €£€Ô$P«€ €¡€"€IC=1) map_user_buffer(SCDRP *SCDRP, int offset, int byte_count, IIIIC4, BOOL read_write, [,PTE *sys_pt] [,int *MAPPED_VA])IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€ICHThe SCDRP is used as input for the SVAPTE, BOFF and BCNT fields, offset,IICHand byte_count are used for segmenting. (these could be optional for theIICFcase where the whole buffer is to be mapped). The sys_pt parameter is IICDfor use when the pt's are allocated directly. This is the address ofIICHthe first allocated PT. If this parameter is left out then the PTE's areIICEallocated. The mapped_va is an output parameter that for the virtual IICGaddress at which the buffer is mapped. The read_write parameter is usedIIC7to determine if the buffer should be mapped writeable. IAb€‚Include Paragraph Tab-1£€ €£€Ô$P«€ €¡€"€IIAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CXNote: In these routines the SCDRP is used as a convenient mechanism to pass the SVAPTE, JCWBCNT, and BOFF of the IO transfer. However, since most of these routines have BOFF and JCOBCNT arguments anyway it might be better to just use the SVAPTE, BOFF and BCNT JC[arguments separately. This would make the routines scsi-independent without increasing the JCargument count of the routines.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€CZWe should also make an effort to ensure that routines that already exist for doing memory JCWmanagement primitives (eg ioc$sva_to_pa) are used. Where they aren't we should provide JCthem.IAb€‚Include Paragraph Text£€ €£€Ô$P«€ €¡€"€IAAA